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.1Chacun 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]).

image

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:1xxx­Deliveryvoir xxxDelivery.

Le Leader est (indirectement) défini dans la spécification SIRI [R6] par les attributs suivants :

xxxDelivery+StructureRéponse pour le service xxx.
LogResponse­Timestamp1:1xsd:dateTimeHeure de creation de la response.
End­point prop­ertiesRequestMessageRef0:1➞ Message­QualifierPour les requêtes directes, identifiant de la requête origine de la réponse.
SubscriberRef0:1➞ Participant­CodeObligatoire si la réponse concerne un Abonnement, Identfiant de l’abonné.
Subscription­FilterRef0:1➞ SubcriptionFilterCodeIdentifiant 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.
Subscription­Ref1:1➞ Subscript­ion­Qualifier

Obligatoire si la réponse concerne un Abonnement.

Identifiant de l'Abonnement émis par le Demandeur.

StatusStatus0:1xsd: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".

ErrorCondition0:1+StructureDescription de toute condition d'erreur ou de warning qui s'applique à la demande ou à la réponse.
choix-1:1Un des codes erreurs suivants.
a) Capability­Not­Supported­Error0:1+ ErrorErreur : fonctionnalité non prise en charge.
b) AccessNot­Allowed­Error0:1+ErrorErreur : le demandeur n'est pas autorisé à accéder au service ou aux données demandés.
c) NoInfoFor­TopicError0:1+ErrorErreur : une demande valide a été effectuée, mais le service ne contient aucune donnée pour l'expression de rubrique demandée.
d) Allowed­Resource­Usage­Exceeded­Error0:1+ErrorErreur : une demande valide a été effectuée, mais la demande dépasserait l'utilisation autorisée des ressources du client.
e) OtherError0:1+ErrorErreur autre
➞ Description0:1➞ ErrorDescriptionDescription de l’erreur.
ValidUntil0:1xsd:dateTimeLimite de validité des données.
Shortest­Possible­Cycle0:1Positive­Duration­TypeIntervalle minimum auquel les mises à jour peuvent être envoyées.
DefaultLanguage0:1Xsd:languageLangue 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éroIntitulé 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:

ClassificationNom de l’élementMin :
Max
Type de donnéesDescription

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 Positive­DurationType 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
NameTypeCardinalityDescription
attributeXml :langstring0 :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)String1:1Texte 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).

ClassificationNom de l’élementMin :
Max
Type de donnéesDescription
MyMessageResponse+StructureReturns data for a MyMessage Request
AttributessrsName0:1xsd:stringDefault GML coordinate format for any spatial points defined in response by Coordinates parameter.
LogResponse­Timestamp1:1xsd:dateTimeTime individual response element was created.
EndpointProducer­Ref0:1Participant­CodeParticipant reference that identifies producer of data. May be available from context.
:::0:1MyAdd­GroupMyAddress Group elements. See section 101.0.
StatusStatus0:1xsd:booleanWhether the complete request could be processed successfully or not. Default is true.
Error­Condition0:1See belowDescription of any error or warning conditions that apply to the overall request.
choix-1:1One of the following error codes.
a) Capability­Not­Supported­Error0:1+ErrorCapability not supported.
b) Other­Error0:1+ErrorError other than a well defined category.
Description0:1Error­DescriptionDescription of Error.
PayloadExpected­Life­Time1:1Positive­Duration­TypeHow long I expect to live. Time interval.
MyWay0:1foo | barWhich way I did it. Default is ‘foo’.
Xxx­Delivery0:*+StructureSee 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.

NomCardTypeDescription
Donnée Niv 1+StructureCette information est constituée des structure « Donnée 1 Niv 2 » et « Donnée 2 Niv 2 »
Donnée 1 Niv 21:*+Structure« Donnée 1 Niv 2 » définie par ailleurs
Donnée 2 Niv 21:*+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 30:1Type 1Donnée de « Donnée 2 Niv 2 »
Donnée 2 Niv 30:1Type 2Donné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:

  1. 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,

  2. 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

NiveauCatégorieDétailService à minima

Autres

services

Commentaire
1Passing times, trip plans and auxiliary informationDisruptions (all modes)General MessageSituation ExchangeNote : 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.
1Passing times, trip plans and auxiliary informationReal-time status information — delays, cancellations, guaranteed connections monitoring (all modes)General MessageSituation ExchangeNote : 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.
1Passing times, trip plans and auxiliary informationStatus of access node features (including dynamic platform information, operational lifts/escalators, closed entrances and exit locations — all scheduled modes)General MessageSituation 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.
2Passing times, trip plans and auxiliary information (all modes)Estimated departure and arrival times of servicesEstimated 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.
ATTENTION: la notion d'heure de départ/arrivée peut donner lieu à débat

2Information serviceAvailability of publicly accessible charging stations for electric vehicles and refuelling points for CNG/LNG, hydrogen, petrol- and diesel-powered vehiclesFacility Monitoring
2Availability checkCar-sharing availability, bike sharing availabilityFacility Monitoring
2Availability checkCar parking spaces available (on and off-street), parking tariffs, road toll tariffsFacility Monitoring

Services SIRI applicables

ServiceDiffusion Inter SystèmesDiffusion Terminaux LegersCentrale de MobilitéDiffusion dans les vehiculesGestion des perturbationsInformation PMRConcentrateurDirective EU

Horaires planifiés

Production Timetable

Horaires calculés

Estimated Timetable

IndispensableIndispensableIndispensableIndispensable

Horaires planifiés à l’arrêt

Stop Timetable

Discovery LineFacultatif1

Horaires calculés à l’arrêt

Stop Monitoring

IndispensableFacultatifFacultatifFacultatif
Discovery StopFacultatif2

Supervision des véhicules

Vehicle Monitoring

IndispensableFacultatif

Correspondances planifiées

Connection Timetable

Correspondances calculées

Connection Monitoring

Facultatif

Messagerie

General Messaging

FacultatifFacultatifFacultatifIndispensableFacultatifFacultatifIndispensableIndispensable (uniquement si SX n’est par retenu)

Gestion des événements

Situation Exchange

IndispensableFacultatifIndispensableIndispensableFacultatifFacultatif

Etat des équipements

Facility Monitoring

FacultatifIndispensableIndispensable

Règles de gestion

CU-1Si 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:

  1. 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) .

  1. 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,

  1. 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…)

  2. 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.

  1. 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…)

  2. 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. 

  3. 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érenceRé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 SIRIIdentifiant 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.

DestinationRefComme un identifiant d'arrêt
DirectionRefDirectionRef 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
FormatRefUtilisé pour General Message ; le format est spécifique au contexte France et doit contenir la valeur fixe « France » (valeur sans format particulier)
FramedVehicleJourneyRefFramedVehicleJourneyRef 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.
InfoChannelRefC'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]
MonitoringRefComme pour les arrêts
OperatorRef[CODESPACE]:Operator::[identifiantTechnique]:
OriginRefComme 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]
StopPointRefComme 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-1Les 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-2Il 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+StructurePlaceholder for user extensions.
KeyList0:1+StructureSet of KEY VALUE pairs.
0:*xsd:any*Any user defined content.

Structure KeyList

KeyList+StructureEnsemble de couples Clef/Valeur arbitraires. Fournis en mecanisme d’extension. Chaque paire de clef /valeur doit être unique.
KeyValue1:*+StructureUne paire arbitraire de clé-valeur.
TypeOfKey0:1xsd: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).

Key1:1xsd:normalizedStringClé de KEY VALUE.
Value1:1xsd:normalizedStringValeur 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.
R001Dans 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 :

Mécanisme

Service SIRI

Abonnement/NotificationRequête/Réponse
SMFacultatifFacultatif
ETObligatoireFacultatif
VMObligatoireFacultatif
SXFacultatifFacultatif
GMFacultatifFacultatif
FMFacultatifFacultatif
R010Ce 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).
R015De 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).

R020La 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 :

  1. 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).

  2. 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é.

R030Les 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 :

R035Le 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.)
R040Le 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.
R045Les champs facultatifs de «SuccessInfoGroup» restent facultatifs.
R050Le 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.

R055Dans 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.

R060En 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.

R065Cette option de XML à plat (« flat XML ») n’est pas retenue dans le cadre du profil SIRI France.

Identification de la version de SIRI

R070La 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.

R075A 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).

R080Par 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 :

  • sur des arrêts identifiés,

  • des lignes identifiées,

  • des exploitants identifiés (accès à toutes les informations fournies par un exploitant donné pour les cas où le système SIRI propose des informations issues de plusieurs exploitants).

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é.

R090Toutefois, 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 SIRIDescription
AccessNotAllowedErrorLe demandeur n'a pas les droits lui permettant d'accéder à ce service ou à ces données.
AllowedResourceUsage­ExceededErrorLa requête est valide mais nécessite une charge trop importante pour pouvoir être traitée.
BeyondDataHorizonLes 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é.

InvalidDataReferencesErrorLa requête contient des identifiants qui sont inconnus.
NoInfoForTopicErrorLa requête est valide, mais aucune donnée correspondante n'est disponible sur le serveur.
OtherErrorErreur autre que celles qui sont prédéfinies.
ParametersIgnoredErrorLa 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.
ServiceNotAvailableErrorLe service est indisponible (mais toutefois capable de fournir cette réponse …).
UnknownExtensionsErrorLa 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 :

  • toujours présent et égal à « true » (valeur par défaut) si la requête a été traitée normalement,

  • et à « false » sinon (dans le cas des abonnements, un éventuel problème détecté, comme une indisponibilité temporaire, donnera lieu à l'émission d'une notification sans données, mais signalant le problème).

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.

R105Le champ facultatif « ErrorCondition » reste facultatif, mais devra être présent et instancié à chaque fois qu’une erreur sera détectée.
R110La liste des codes erreur à supporter dans le cadre du profil France est détaillée dans le tableau ci-dessous.
R115S’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.
R120Le 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]”.
R130De 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.

R135De façon à assurer une homogénéité de comportement dans le traitement des erreurs, il est convenu des comportements suivants :
ErreurComportement
[BAD_REQUEST]Rejet complet de la requête, réponse erreur uniquement.
InvalidDataReferencesErrorRejet 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.
ParametersIgnoredErrorRéponse en ignorant le paramètre incriminé.
NoInfoForTopicErrorRéponse uniquement sur la base des informations effectivement disponibles (pas de réponse autre que l’erreur si aucune donnée n’est disponible).
ServiceNotAvailableErrorRejet complet de la requête, réponse erreur uniquement.
AccessNotAllowedErrorRejet complet de la requête, réponse erreur uniquement.
[INTERNAL_ERROR]Réponse erreur uniquement.
AllowedResourceUsageExceededErrorRéponse erreur uniquement.
BeyondDataHorizonRéponse erreur uniquement.
UnknownExtensionsErrorRé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.

R140Toutefois, 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).
R145Les 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.
R150La 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.

R155Dans 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).
R160ATTENTION : 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).

R165De 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

R175Les 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.

R180Le « PreviousCall » n’a pas été retenu par le profil France et ne doit donc pas être utilisé.
R185Le « 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érentielCommentaire
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+StructureRequête d’accès à la liste des arrêts
LogRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Endpoint PropertiesAddress0:1Endpoint­AddressAdresse réseau de destination de la réponse (ici une URL étant donné le choix d’implémentation SOAP).
RequestorRef1:1Participant­CodeIdentifiant du demandeur (reprendre la structure [fournisseur] des identifiants).
Message­Identifier0:1Message­QualifierIdentifiant unique de ce message.
TopicBoundingBox0:1Filtre permettant de n’obtenir que les arrêts situés à l’intérieur d’un rectangle englobant.
➞ UpperLeft0:1LocationStructureCoin supérieur gauche du rectangle englobant.
LowerRight0:1LocationStructureCoin inférieur droit du rectangle englobant.
OperatorRef0:1Operator­CodeFiltre permettant de n’obtenir que les arrêts utilisés par un opérateur donné.
LineRef0:1LineCodeFiltre 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+StructureDescription simplifiée d’un arrêt.
Stop IdentityStop­Point­Ref1:1StopPoint­Code

Identifiant du Point d'arrêt. Cf 5.4.

Il convient d'utiliser ici un identifiant d'objet de référence.

StopName1:1NaturalLanguageStringStructurele champ«StopName» sera toujours présent et renseigné conformément au paragraphe 5.4.
Lines0:*Liste des lignes passant à l'arrêt.
LineRef0:1LineCodeIdentifiant d'une ligne (issu du référentiel des lignes).
Location0:1LocationStructureLocalisation géographique de l'arrêt.

Discovery Line

Requête LinesDiscoveryRequest

LinesDiscoveryRequest+StructureRequête d’accès à la liste des lignes
LogRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Endpoint PropertiesAddress0:1Endpoint­AddressAdresse réseau de destination de la réponse (ici une URL étant donné le choix d’implémentation SOAP).
Requestor­Ref1:1Participant­CodeIdentifiant du demandeur (reprendre la structure [fournisseur] des identifiants).
Message­Identifier0:1Message­QualifierIdentifiant unique de ce message.
OperatorRef0:1Operator­CodeFiltre permettant de n’obtenir que les lignes exploitées par un opérateur donné.

Réponses aux LinesRequest

AnnotatedLineStructure+StructureDescription simplifiée d’une ligne.
Line IdentityLineRef1:1LineCodeIdentifiant de la ligne (issu du référentientiel des lignes).
LineName1:1NaturalLanguageStringStructureNom de la ligne (issu du référentientiel des lignes)..
Monitored0:1xsd:booleanLe 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)
Destinations0:*AnnotatedDestinationStructureLe 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

EstimatedTimetable­Request+StructureRequête d’informations horaires calculées sur la ligne
AttributesVersion1:1VersionStringVersion du service “ Estimated Timetable”, intégrant le numéro de version de profil (voir 5.9) par exemple - ‘2.1:FR-1.0’
Endpoint PropertiesRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Message­Identifier1:1MessageQualifierNuméro d’identification du message
TopicPreview­Interval0:1Positive­DurationTypeSi 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.
Timetable­VersionRef0:1xsd:stringVersion du référenciel théorique connue : seuls les écarts par rapport à ce référentiel seront transmis.
Operator­Ref0:1Operator­CodeIdentifie l’exploitant pour lequel on souhaite obtenir des informations.
Lines0:*+structureListe des lignes contenant les courses pour lesquelles on souhaite des informations.
LineDirection0:1LineDirection­CodeIdentifie la ligne pour laquelle on souhaite obtenir des informations.
AnyExtensions0:1+StructureEmplacement 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.

NotificationCommentaire
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êtNotification en positionnant le champ VehicleAtStop à ’True’
En cas de changement de quaiNotification en positionnant les informations relatives au quai.
EstimatedTimetable­SubscriptionRequest+StructureRequête d’abonnement aux horaires calculés sur la ligne
IdentitySubscriber­Ref1:1→ Participant­CodeIdentification du système demandeur (voir SIRI Partie 2 Common SubscriptionRequest parameters.)
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l'abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestEstimated­Timetable­Request1:1+StructureVoir EstimatedTimetable­Request.
PolicyChange­Before­Update1:1Positive­Duration­Type

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+StructureDécrit une Dated Timetable (horaire pour un jour d’application donné).
Attributesversion1:1Version­StringNuméro de version du service Estimated Timetable, intégrant le numéro de version de profil (voir 5.9) (valeur fixe).
LEADER::1:1xxx­DeliveryVoir xxxDelivery.
PayloadEstimatedJourneyVersionFrame0:*+StructureVoir EstimatedJourneyVersionFrame element.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2)

Structure EstimatedJourneyVersionFrame

EstimatedJourneyVersionFrame+StructureFournit les horaires attendus pour un itinéraire (ligne+direction) donné.
LogRecorded­AtTime1:1xsd:dateTimeDate et heure à laquelles ces données ont été produites.
IdentityVersionRef0: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).

JourneysEstimatedVehicleJourney1:*+Structure

Description des courses sur l’itinéraire.

Voir EstimatedVehicleJourney element.

anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2)
Structure EstimatedVehicleJourney
EstimatedVehicleJourney+StructureDescription d’une course.
Vehicle Journey IdentityLineRef1:1→ LineCodeIdentifiant de la ligne.
DirectionRef1:1→ Direction­Code

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:1Seul le choix a, b ou c est possible …
a) Dated­Vehicle­Journey­Ref0:1→ DatedVehicle­Journey­Code

Identifie la course.

Cette information est obligatoire dans le cadre des échanges avec un concentrateur.

b) Estimated­Vehicle­Journey­Code0:1Estimated­Vehicle­Journey­Code

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 Dated­Vehicle­Journey­Ref sera remplie comme pour les autres courses.

c) Dated­Vehicle­Journey­Indirect­Ref0:1+StructureSi 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.
Origin­Ref1:1→ StopPoint­CodeIdentifiant du premier point d’arrêt de la course.
Aimed­Departure­Time1:1xsd:dateTimeHeure de depart (théorique) au premier point d’arrêt.
Destination­Ref1:1→ StopPoint­CodeIdentifiant du dernier point d’arrêt de la course.
Aimed­Arrival­Time1:1xsd:dateTimeHeure d’arrivée (théorique) au dernier point d’arrêt.
ChangeExtraJourney0:1xsd:boolean

Signale qu’il s’agit d’une nouvelle course, ajoutée par rapport aux horaires théoriques.

Valeur par défaut : « false »

Cancellation0:1xsd:boolean

Signale la suppression de la course identifiée.

Valeur par défaut : « false »

Journey­Pattern Info::0:1Journey­Pattern­Info­GroupVoir Journey­Pattern­Info­Group.
JourneyEndNames:::0:1JourneyEndNamesGroupVoir JourneyEndNamesGroup
VehicleJourneyInfo:::0:1VehicleJourneyInfoGroupVoir VehicleJourneyInfoGroup
Service Info:::0:1Service­Info­GroupVoir Service­Info­Group.
Journey InfoVehicle­Journey­Name0:1NLStringNom commercial de la course.
JourneyNote0:*NLStringTexte complémentaire décrivant la course.
EstimatedInfoHeadway­Service0:1xsd: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 ».

Origin­Aimed­Departure­Time0:1xsd:date­TimeHeure théorique de départ de la course à son point de départ.
Destination­Aimed­Arrival­Time0:1xsd:date­TimeHeure théorique d'arrivée de la course à son point de d'arrivée.
FirstOrLastJourney0:1FirstOrLastJourneyEnum

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).

Disruption­Group:::0:1Disrupt­ion­GroupVoir Disruption­Group.
Journey­Progress­Info:::0:1Journey­Progresss­Info­Group

voir Journey­Progress­Info­Group.

DetailLevel: normal.

Opera­tional­InfoTrainNumber0:*sequenceSéquence de numéro de train (l'utilisation d'une sequence permet notament de gérer les trains couples)
TrainNumberRef1:1TrainNumberNuméro de train
JourneyParts0:*sequenceListe des parties de course concernée par les Call ci-dessous.
JourneyPart­Info1:1+StructureInformation sur les parties de course
Journey­PartRef0:1JourneyPart­Code

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

Train­NumberRef0:1TrainNumbern'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".
CallsRecordedCalls0:1+StructureDescription ordonnée des passages déjà réalisés
RecordedCall1:*+StructureDécrit un arrêt déjà desservi par la course.
Estimated­Calls0: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é.)

Estimated­Call1:*+StructureVoir EstimatedCall.
IsComplete­Stop­Sequence0:1xsd: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.

AnyExtensions0:1anyEmplacement 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+StructureDécrit un arrêt déjà desservi par la course.
Stop IdentityStop­Point­Ref1:1StopPoint­CodeIdentifiant 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).
Order1:1xsd:positive­Integer

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.

Stop­Point­Name0:1NLStringNom du point d'arrêt.
ChangeExtraCall0:1xsd:booleanSignale si cet arrêt a été ajouté sur la course (par rapport aux horaires théoriques).
Cancellation0:1xsd: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 ».

Occupancy0:1full | seats­Available | standing­Available | 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.

Platform­Traversal0:1xsd: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 ».

Disruption­Group:::0:1Disrupt­ion­GroupVoir Disruption­Group.
ArrivalAimedArrival­Time0:1xsd:dateTimeHeure d'arrivée théorique (ou commandée).
ActualArrivalTime0:1xsd:dateTimeHeure réalisée. A renseigner sauf pour le terminus départ
Expected­Arrival­Time0:1xsd: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.

Arrival­Status0:1onTime | 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.

ArrivalProximity­Text0:*NLStringTexte libre à présenter quand le véhicule est proche, par exemple "à l'approche".
Arrival­PlatformName0:1NLStringIdentification ou nom du quai d'arrivée (zone d’embarquement).
Arrival­Boarding­Activity0:1alighting | noAlighting | passThruOn utilisera le Departure­Boarding­Activity dans le profil France.
ArrivalStopAssignment0:1+StructureAffectation du point d'arrêt planifié à un quai (zone d’embarquement).
➞ Aimed­­QuayRef0:1QuayCode­TypePhysical QUAY to use according to the planned timetable.
➞ Aimed­­QuayName0:1NLStringIndication de la voie d'arrivée (en complément de Platform).
➞ Expected­­QuayRef0:1QuayCode­TypePhysical QUAY to use according to the real-time prediction.
DepartureAimed­Departure­Time0:1xsd:dateTimeHeure de départ théorique (ou commandée).
Actual­Departure­Time0:1xsd:dateTimeHeure de départ réalisée. A renseigner sauf pour le terminus d’arrivée.
Expected­Departure­Time0:1xsd:dateTimeHeure de départ estimée par le SAE.
Departure StatusDeparture­Status0:1onTime | 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.

Departure­Platform­Name0:1NLStringIdentification ou nom du quai de départ (zone d’embarquement)..
Departure­Boarding­Activity0:1boarding | noBoarding | passThru

Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai).

Valeur par défaut : « boarding ».

➞ ExpectedQuayRef0:1QuayCode­TypePhysical QUAY (Platform) to use according to the real-time prediction.
ExpectedDepartureOccupancy0:1+structurePermet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2.
ExpectedDepartureCapacity0:1+structurePermet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure EstimatedCall
EstimatedCall+­StructureDescription d’un arrêt prévu, avec ses informations horaires.
Stop IdentityStop­Point­Ref1:1StopPoint­CodeIdentifiant 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).
Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Stop­Point­Name0:1NLStringNom du point d'arrêt.
ChangeExtraCall0:1xsd:booleanSignale si cet arrêt a été ajouté sur la course (par rapport aux horaires théoriques).
Cancellation0:1xsd: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 ».

Occupancy0:1full | seats­Available | standing­Available | 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 GroupPlatform­Traversal0:1xsd: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 PropertyDestination­Display0:1NLStringDestination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local).
Disruption­Group:::0:1Disrupt­ion­GroupVoir Disruption­Group.
ArrivalAimed­Arrival­Time0:1xsd:dateTimeHeure d'arrivée théorique (ou commandée).
Expected­Arrival­Time0:1xsd:dateTimeHeure d'arrivée estimée par le SAE.
Arrival­Status0:1onTime | 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.

ArrivalProximity­Text0:*NLStringTexte libre à présenter quand le véhicule est proche, par exemple "à l'approche".
Arrival­PlatformName0:1NLStringIdentification ou nom du quai d'arrivée (zone d’embarquement).
ArrivalStopAssignment0:1+StructureAffectation du point d'arrêt planifié à un quai (zone d’embarquement).
Aimed­­QuayName0:1NLStringIndication de la voie d'arrivée (en complément de Platform).
DepartureAimed­Departure­Time0:1xsd:dateTimeHeure de départ théorique (ou commandée).
Expected­Departure­Time0:1xsd:dateTimeHeure de départ estimée par le SAE.
Departure StatusDeparture­Status0:1onTime | 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.

Departure­Platform­Name0:1NLStringIdentification ou nom du quai de départ (zone d’embarquement)..
Departure­Boarding­Activity0:1boarding | noBoarding | passThru

Caractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai).

Valeur par défaut : « boarding ».

ExpectedDepartureOccupancy0:1+structurePermet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2.
ExpectedDepartureCapacity0:1+structurePermet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3.
Aimed­Headway­Interval0:1Positive­DurationFréquence de passage théorique (ou commandée).
Estimated­Headway­Interval0:1Positive­DurationFréquence de passage estimée par le SAE.
anyExtensions0:1anyEmplacement 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-Occupancy0:*+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-Category0:1NLStringAdulte, enfant, fauteuil roulant etc.
Occupancy-Level0:1Occupancy-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 | seats­Available | standing­Available | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers

Occupancy-Percentage0:1PercentageTypePourcentage utilisé de la charge utile maximale après le départ du POINT D'ARRÊT PRÉVU.
AlightingCount0:1NumberOf-PassengersNombre total de passagers descendants pour cette course à ce POINT D'ARRÊT PLANIFIE.
Boarding-Count0:1NumberOf-PassengersNombre total de passagers embarquant pour cette course à ce POINT D'ARRÊT PLANIFIE.
OnboardCount0:1NumberOf-PassengersNombre total de passagers à bord après le départ du POINT D'ARRÊT planifié.
Group-Reservation0:*+StructurePermet 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-Group1:1NLStringNom pour lequel le groupe de voyage a effectué la réservation.
NumberOf-Seats1:1NumberOfPassengersNombre de places réservées par le groupe.

Structure ExpectedDepartureCapacity

Expected-Departure-Capacities0:*+StructureCapacité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:1TrainFormation-ReferenceGroupVoir SIRI Partie 2 TrainFormationReferenceGroup.
Passenger-Category0:1NLStringAdulte, enfant, fauteuil roulant etc.
TotalCapacity0:1NumberOf-PassengersLa capacité totale du véhicule en nombre de passagers.
Seating-Capacity0:1NumberOf-PassengersLe nombre de places assises du véhicule en nombre de passagers.
Standing-Capacity0:1NumberOf-PassengersLa capacité debout du véhicule en nombre de passagers.
Pushchair-Capacity0:1NumberOf-PassengersLe nombre de places de poussette du véhicule.
Wheelchair-PlaceCapacity0:1NumberOf-PassengersLe nombre de places en fauteuil roulant du véhicule.
PramPlace-Capacity0:1xsd:nonnegative-IntegerLe nombre de places du véhicule adaptées aux poussettes.
BicycleRack-Capacity0:1xsd:nonnegative-IntegerLe 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

image

Pendant la course

Les informations relatives aux arrêts déjà désservis sont transmises dans les structures RecordedCall.

image

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 :

ET001L’implémentation des recordedcalls est facultative.
ET010Un 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.
ET015Aprè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.
ET020Si, 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

SM005La 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é

SM010Cette 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
DefaultPreview­IntervalOui
FilterByMonitoring­RefOui
FilterByLineRefOui
FilterByDestinationOui
RequestPolicy
GmlCoordinateFormatOui
UseReferencesOui
UseNamesOui
HasMinimum­StopVisits­PerLineOui
HasNumberOf­OnwardsCallsOui
SubscriptionPolicyHasIncremental­UpdatesOui
HasChangeSensitivityOui

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.

SM015Toutefois 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).

SM020Il 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.
SM025En 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).
SM030En 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).
SM040En 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.

StatutsArrivalStatusDepartureStatus
onTimeA 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.
EarlyEn 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.
DelayedEn 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.
CancelledPassage annuléPassage annulé (note: ce passage annulé reste comptabilisé dans le nombre de passages utilisé dans les filtres de requêtes).
noReportPas 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:

SM045S’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 ».
SM050Dans 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

  • La réponse positionne à « Cancelled » le champ « ArrivalStatus » et/ou « DepartureStatus » dans « MonitoredCall » jusqu’à l’heure d’arrivée théorique

  • Puis aucune information n'est plus fournie pour cette course.

SM060

Mode abonnement

  • Une (unique) notification est faite en positionnant à « Cancelled » le champ « ArrivalStatus » et/ou « DepartureStatus » dans « MonitoredCall ».

StopMonitoringRequest+StructureRequête pour obtenir des informations temps réel sur les heures d’arrivée et de départ à un point d’arrêt.
AttributesVersion1:1Version­StringVersion du service “Stop Monitoring”, , intégrant le numéro de version de profil par exemple. ‘2.1:FR-1.0’.
Endpoint PropertiesRequest­Timestamp1:1xsd:dateTimeDate d'émission de la requête.
Message­Identifier1:1Message­QualifierNuméro d'identification du message.
TopicPreview­Interval0:1Positive­Duration­TypeSi 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).
StartTime0:1xsd:dateTimeHeure à partir de laquelle doit être compté le Preview­Interval.
Monitoring­Ref1:1Monitoring­Code

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).

Destination­Ref

0:1

0:0

StopPoint­Code

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

Operator­Code

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).

StopVisit­Types

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 :

  • dans le cas du StopVisitTypes = all ou departures, si l’heure de départ n'est pas connue (pour les SAEIV bus notament) alors l'heure de départ sera renseignée égale à l'heure d’arrivée et les 2 champs sont renseignés.

  • Inversement, dans le cas du StopVisitTypes = all ou arrivals, si l’heure d’arrivée n'est pas connue alors l'heure d’arrivée prend la valeur de l'heure de départ et les 2 champs sont renseignés.

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 PolicyMaximum­StopVisits

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) Minimum­StopVisits­PerLine

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 Preview­Interval

Il est recommandé de ne pas utiliser simultanément Maximum­StopVisits et Minimum­StopVisits­PerLine : si toutefois cela arrivait, le Maximum­StopVisits serait dominé par le Minimum­StopVisits­PerLine et la liste des informations disponibles pourrait être plus importante que stipulé par Maximum­StopVisits.

Filtre non utilisé entre le relai et ses concentrateurs alimentants

b) MinimumStop­Visits­PerLine­Via

0:1

0:0

xsd:nonNegative­Integer

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

Maximum­Number­Of­Calls

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 Maximum­StopVisits et Minimum­StopVisits­PerLine 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.

anyExtensions0:1+StructureEmplacement 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

SM065Il 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+StructureRequê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
IdentitySubscriber­Ref1:1Participant­CodeIdentification du système demandeur (voir SIRI Part 2 Common SubscriptionRequest parameters.).
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l'abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestStop­Monitoring­Request1:1+Structurevoir StopMonitoringRequest (ci-dessus).
PolicyIncremental­Updates0:1xsd: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é.

Change­Before­Updates0:1Positive­DurationType

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+Structurevoir SIRI Part 7.2ServiceDelivery
HEADER:::1:1Voir ServiceDelivery
PayloadStop­Monitoring­Delivery0:*+StructureVoir StopMonitoringDelivery ci- dessous.

Attributs temps réel du point d’arrêt

StopMonitoringDelivery+StructureDelivery for Stop Monitoring Service.
Attributesversion1:1Version­StringNuméro de version du service Stop Monitoring, intégrant le numéro de version de profil (voir 5.9).
LEADER::::::xxx­DeliveryVoir paragraphe 2.2.
Pay­loadMonitoringRef1:1Monitoring­Code

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.

Monitored­Stop­Visit0:*+StructureDescription des passages à l'arrêt.
Monitored­Stop­Visit­Cancellation0:*+StructureIndication 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).
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).
Description d’un arrêt (ou point d’arrêt indiqué) sur une course
MonitoredStopVisit+StructureDescription du passage d’un véhicule à un arrêt (dans le cadre d’une course).
LogRecorded­At­Time1:1xsd:dateTimeHeure à laquelle la donnée a été mise à jour.
IdentityItem­Identifier1:1ItemIdentifier

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.

Stop­Visit­ReferenceMonitoring­Ref1:1Monitoring­CodeRéférence du point d'arrêt.
Journey­InfoMonitoredVehicleJourney1:1Monitored­Vehicle­Journey­StructureDescription de la course.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Attributs temps réel de la course : Monitored Vehicle Journey
MonitoredVehicleJourney+StructureDescription de la course.
Vehicle Journey IdentityLineRef1:1LineCodeIdentifiant de la ligne.
Framed­Vehicle­JourneyRef

0:1

1:1

+Framed­Vehicle­JourneyRef­Structure

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).

Journey­Pattern­Info:::0:1Journey­Pattern­Info­GroupVoir Journey­Pattern­Info­Group.
Vehicle­Journey­Info:::0:1Vehicle­JourneyInfo­GroupVoir Vehicle­JourneyInfo­Group.
Disruption­Group:::0:1Disruption­GroupVoir Disruption­Group.
Journey­Progress­Info:::0:1Journey­Progresss­Info­Groupvoir Journey­Progress­Info­Group.
Opera­tional­InfTrainNumber0:*sequenceSéquence de numéro de train (l'utilisation d'une sequence permet notament de gérer les trains couples).
TrainNumberRef1:1TrainNumberNuméro de train.
JourneyParts0:*sequenceListe des parties de course concernées par les Call ci-dessous.
JourneyPart­Info1:1+StructureInformation sur les parties de course.
Journey­PartRef1:1JourneyPart­CodeDans 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).
Train­NumberRef0:1TrainNumber
Calling PatternMonitored­Call0:1+StructureInformations horaires concernant l'arrêt considéré.
Onward­Calls0:1+StructureInformations horaires concernant les arrêts suivants.
Onward­Call0:*+StructureInformations horaires pour l'un des arrêts suivants.
any

L’arrêt

MonitoredCall+StructureInformations horaires pour l’arrêt.
Stop IdentityStop­Point­Ref

0:1

1:1

StopPoint­Code

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.

Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Stop­Point­Name1:1NLString

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-timeVehicle­At­Stop0:1xsd:boolean

La Valeur «true » indique que le véhicule est à l'arrêt.

Valeur par défaut : « false ».

Call RailPlatform­Traversal0:1xsd: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 PropertyDestination­Display0:1NLStringDestination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local).
Disruption­Group:::0:1Disruption­GroupVoir Disruption­Group.
Arrival timesAimed­Arrival­Time0:1xsd:date­TimeHeure d'arrivée théorique (ou commandée).
Actual­Arrival­Time0:1xsd:date­TimeHeure d'arrivée effectivement mesurée.
Expected­Arrival­Time0:1xsd:date­TimeHeure d'arrivée estimée par le SAE.
Arrival StatusArrival­Status0: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:

  • missed : le vehicule n'a pas marqué l'arrêt alors qu'il aurait du, mais la course continue.

  • notExpected : départ ou arrivée non planifié(e) (cas de TAD non encore déclenché).

ArrivalProximity­Text0:*NLStringTexte 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.
Arrival­Platform­Name0:1NLStringIdentification ou nom du quai d'arrivée.
Aimed­­QuayName0:1NLStringIndication de la voie d'arrivée (en complément de Platform).
DepartureAimed­Departure­Time0:1xsd:date­TimeHeure de départ théorique (ou commandée).
Actual­Departure­Time0:1xsd:date­TimeHeure de départ effectivement mesurée.
Expected­Departure­Time0:1xsd:date­TimeHeure de départ estimée par le SAE.
Departure StatusDeparture­Status0:1onTime | 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 ».

Departure­Platform­Name0:1NLStringIdentification ou nom du quai de départ.
Departure­Boarding­Activity0:1boarding | 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».

OccupancyExpectedDepartureOccupancy0:*+structurePermet de décrire l’occupation d’un véhicule à un arrêt. Cf § 6.1.3.2.
CapacityExpectedDpeartureCapacity0:*+structurePermet de décrire les capacités d‘un véhicule selon le type de place cf § 6.1.3.3.
FrequencyAimed­Headway­Interval0:1Positive­DurationTypeFréquence de passage théorique (ou commandée).
Expected­Headway­Interval0:1Positive­DurationTypeFréquence de passage estimée par le SAE.
Stop Proximity GroupDistanceFrom­Stop0:1DistanceTypeDistance qui sépare le vehicule de l'arrêt. Une valeur positive indique que le véhicule est en amont de l'arrêt.
NumberOf­StopsAway0:1nonNegative­IntegerIndique le nombre d'arrêts à marquer entre la position courante du vehicule et l'arrêt considéré.
anyExtensions0:1+StructureEmplacement pour extension utilisateur.

Arrêts suivants

OnwardCall+StructureInformation sur les arrêts suivants de la course.
Stop IdentityStop­Point­Ref1:1StopPoint­Code

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).

Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Stop­Point­Name1:1NLStringNom du point d'arrêt.
ProgressVehicle­At­Stop0:1xsd:boolean

La Valeur «true » indique que le véhicule est à l'arrêt.

Valeur par défaut : « false ».

Arrival TimesAimed­Arrival­Time0:1xsd:dateTimeHeure d'arrivée théorique (ou commandée).
Expected­Arrival­Time0:1xsd:dateTimeHeure d'arrivée estimée par le SAE.
Arrival StatusArrival­Status0:1onTime | early | delayed | cancelled | missed | arrived | notExpected | noReport

Caractérisation de l'horaire d'arrivée attendu.

Valeur par défaut : « onTime ».

ArrivalProximity­Text0:*NLStringTexte 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.
Arrival­Platform­Name0:1NLStringIdentification du quai d'arrivée.
DepartureAimed­Departure­Time0:1xsd:dateTimeHeure de départ théorique (ou commandée).
Expected­Departure­Time0:1xsd:dateTimeHeure de départ estimée par le SAE.
Departure StatusDeparture­Status0:1onTime | early | delayed | cancelled | arrived |departed | notExpected | noReport

Caractérisation de l'horaire de départ attendu.

Valeur par défaut : « onTime ».

Departure­Platform­Name0:1NLStringIdentification du quai de départ.
Departure­Boarding­Activity0:1boarding | 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 ».

Pro­gress StatusAimed­­Head­Way­Interval0:1Positive­DurationTypeFréquence de passage théorique (ou commandée).
Expected­Headway­­Interval0:1Positive­DurationTypeFréquence de passage estimée par le SAE.
Stop Proximity GroupDistanceFrom­Stop0:1DistanceTypeDistance qui sépare le vehicule de l'arrêt. Une valeur positive indique que le véhicule est en amont de l'arrêt.
NumberOf­StopsAway0:1nonNegative­IntegerIndique le nombre d'arrêts à marquer entre la position courante du vehicule et l'arrêt considéré.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).
Annulation d’arrêts
MonitoredStopVisit­Cancellation+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.

LogRecorded­At­Time1:1xsd:dateTimeHeure à laquelle l'annulation de passage a été signalée/publiée.
Event­IdentityItemRef

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).

MonitoringRef1:1Monitoring­CodeIdentifiant du point d'arrêt.
LineRef0:1LineCodeIdentifiant 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 ).
Vehicle­JourneyRef

0:1

1:1

+Structure (FramedVehicleJourneyRefStructure)

Identification de la course concernée.

Champ obligatoire pour les échanges avec les concentrateurs

Journey­Pattern­Info:::0:1Journey­Pattern­Info­GroupVoir Journey­Pattern­Info­Group.
MessageReason0:1NLStringMessage expliquant la cause de l'annulation.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).

FramedVehicleJourneyRef

Framed­Vehicle­JourneyRef0:1+StructureIdentification d'une course.
Data­Frame­Ref1:1DataFrame­Qualifier

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.

DatedVehicleJourneyRef1:1Dated­Vehicle­Journey­CodeIdentifiant de la course elle-même.

VehicleJourneyInfoGroup

VehicleJourneyInfo­GroupDescription de la course.
Service­Info:::0:1Service­Info­GroupVoir Service­Info­Group.
JourneyEndNames:::0:1JourneyEndNamesGroupVoir JourneyEndNamesGroup.
JourneyInfoVehicle­Journey­Name0:1NLStringNom de la course.
Journey­Note0:1NLStringTexte complémentaire décrivant la course.
End TimesHeadway­Service0:1xsd: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 ».

Origin­Aimed­Departure­Time0:1xsd:date­TimeHeure théorique de départ de la course à son point de départ.
Destination­Aimed­Arrival­Time0:1xsd:date­TimeHeure théorique d'arrivée de la course à son point d'arrivée.
FirstOrLastJourney0:1FirstOrLast­Journey­Enumeration

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 InfoOperatorRef0:1OperatorCodeIdentifiant de l'exploitant.
Product­Category­Ref0:1Product­Category­CodeMode de transport détaillé (voir l’énumération complète dans le XSD SIRI [R10]).
Service­Feature­Ref0:*Service­Feature­CodeClassification du type de service (“bus scolaire”, etc.).
Vehicle­Feature­Ref0:*Vehicle­Feature­Code

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:

  • shortTrain : Train court

  • longTrain : Train long

JourneyEndNamesGroup

ServiceEnd NamesOriginRef0:1Journey­PlaceCodeIdentifiant de l'arrêt de départ de la course.
Origin­Name0:1NLStringNom de l'arrêt de départ (si l'identifiant OriginRef est fourni, le nom doit l'être aussi).
Via0: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

PlaceRef0:1Journey­PlaceCodeIdentifiant de l'arrêt via (ou d'un lieu via).
PlaceName0:1NLStringNom 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
DestinationRef1:1Journey­PlaceCodeIdentifiant du dernier arrêt de la course.
Destination­Name1:1NLStringNom de l'arrêt de destination (si l'identifiant DestinationRef est fourni, le nom doit l'être aussi).

JourneyPatternInfoGroup

JourneyPatternInfoGroupGroupe d’attributs pour la description des missions
Journey Pattern InfoJourney­PatternRef0:1Journey­PatternCodeIdentifiant de la mission.
JourneyPatternName0:1NLStringNom ou numéro de course présenté au public.
Vehicle­Mode0:1air | bus | coach | ferry | metro | rail | tram | under­ground

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 ».

RouteRef0:1RouteCodeIdentifiant de l'itinéraire suivi.
Published­LineName1:1NLStringNom de la ligne.
Direction­Name0:1NLString

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-14Seule 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 ».
SituationSituationRef0:*SituationCodeIdentifiant (externe) de l’événement qui est la cause des modifications horaires indiquées.

JourneyProgressInfoGroup

JourneyProgressInfoGroupGroupe d’attributs précisant l’avancement sur la mission.
StatusMonitored0:1xsd:boolean

Indique si le véhicule est toujours localisé (la valeur false indique une délocalisation du bus).

Valeur par défaut : « true ».

Monitoring­Error0:1GPS | GPRS | RadioSi le bus est délocalisé, ce champ précise la cause de cette délocalisation.
Progress Data QualityIn­Congestion0:1xsd: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 ».

InPanic0:1xsd:boolean

Indique que l'alarme du véhicule est activée.

Valeur par défaut : « false ».

Progress DataVehicle­Location0:1Location­Structure

Indique la position du véhicule (voir Location­Structure).

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).

Bearing0:1Absolute­Bearing­Type

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>

Occupancy0:1full | seatsAvailable | standingAvailable | unknown | empty | manySeatAvailable | fewSeatAvailable | standingRoomOnly | crushStandingRoomOnly | notAcceptingPassengers

Indique le niveau de remplissage du véhicule.

Valeur par défaut : « unknown».

Delay0:1DurationTypeIndique le niveau de retard du véhicule (une valeur négative indique une avance).

Connection Monitoring

Requête d’information sur les correspondances

Connection­Monitoring­Request+StructureRequête d’information sur les correspondances
Attributesversion1:1VersionStringVersion du service “ Connection Monitoring”, intégrant le numéro de version de profil par exemple. ‘2.1:FR-FR-1.0’.
End­point PropertiesRequest­Timestamp1:1xsd:dateTimeDate d'émission de la requête.
Message­Identifier0:1Message­Qualifier
TopicPreviewInterval0:1Positive­Duration­TypeSi 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.
ConnectionLink­Ref1:1 Connec­tion­Link­Code

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:1Seul l’un des filtres peut être utilisé.
a) Connecting­Time­Filter0:1+StructureFiltre temporel, indépendant des courses.
LineRef1:1Line­Code
Direction Ref1:1Direction­Code
b) Connecting­Journey­Filter0:*+StructureFiltre basé sur les courses.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).

Structure ConnectingTimeFilter

FilterConnecting­TimeFilter+StructureFiltre temporel pour les requêtes.
LineRef1:1LineCodeIdentifiant de la ligne amenante.
DirectionRef1:1Direction­CodeIndication de direction (aller/retour).
Earliest­ArrivalTime1:1xsd:dateTimeDébut de la fenêtre temporelle d’interrogation (basé sur l’heure d’arrivée).
Latest­ArrivalTime1:1xsd:dateTimeFin de la fenêtre temporelle d’interrogation (basé sur l’heure d’arrivée).

Structure ConnectingJourneyFilter

FilterConnecting­JourneyFilter+StructureFiltre sur les courses.
Dated­Vehicle­JourneyRef1:1Dated­Vehicle­Journey­CodeIdentifiant de la course.
Aimed­Arrival­Time0:1xsd:dateTimeDate et heure d’arrivée prévue au point d’arrêt (départ de correspondance).

Abonnement aux informations sur les correspondances

Connection­Monitoring­Subscription­Request+StructureAbonnement aux informations sur les correspondances.
IdentitySubscriber­Ref1:1Participant­CodeIdentification du système demandeur ( voir SIRI Partie 2 Common SubscriptionRequest parameters).
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l'abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestConnection­Monitoring­Request1:1+StructureVoir ConnectionMonitoringRequest.
PolicyChange­Before­Updates0:1Positive­DurationType

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).

anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).

Réponse aux requêts d’information sur les correspondances

ServiceDelivery+StructureRéponse aux requêtes d’information sur les correspondances.
HEADER:::1:1See ServiceDelivery
PayloadConnectionMonitoring­FeederDelivery1:*+Structurevoir ConnectionMonitoring­Feeder­Delivery.
ConnectionMonitoring­DistributorDelivery1:*+Structurevoir ConnectionMonitoringDistributor­Delivery.

Connection MonitoringFeeder Delivery

Connection­MonitoringFeeder­Delivery+StructureRéponse aux requêtes d’information sur les correspondances : description des alimentants.
Attributesversion1:1VersionStringNuméro de version du service Connection Monitoring, intégrant le numéro de version de profil (voir 5.9) (valeur fixe).
LEADER:::1:1xxx­Deliveryvoir xxxDelivery.
PayloadMonitored­Feeder­Arrival0:*+Structure

Changement d’heure d’arrivée à la correspondance.

Voir MonitoredFeederArrival.

Monitored­Feeder­Arrival­Cancellation0:*+Structure

Annulation de passage à la correspondance.

Voir MonitoredFeederArrival.

AnyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure MonitoredFeederArrival
MonitoredFeederArrival+StructureInformation sur l’amenant.
LogRecorded­AtTime1:1xsd:dateTimeDate et heure à laquelles ces données ont été produites.
IdentityItem­Identifier0:1ItemIdentifierRéférence le message d’information.
Feeder Inter­change IdentityInterchange­Ref0:1Interchange­Code

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 ‘:’).

Connection­Link­Ref1:1Connection­Link­CodeIdentifiant de la correspondance physique.
Stop­Point­Ref0:1StopPoint­Code

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.

Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Stop­Point­Name0:1NLStringNom du point d'arrêt.
Clear­Down­Ref0:1Cleardown­CodeCleardown : indicateur « véhicule à l’arrêt » ou « à l’approche ».
Journey InfoFeeder­Journey1:1Connecting­Journey­StructureDescription de la course de l’amenant.
Real-time callVehicleAt­Stop0:1xsd:boolean

Indicateur “Véhicule à l’arrêt”.

Valeur par défaut : « false»

Call timeAimedArrivalTime0:1xsd:dateTimeHeure d'arrivée planifiée.
Expected­Arrival­Time1:1xsd:dateTimeHeure d’arrivée prévue à l’arrêt.
ArrivalPlatformName0:1NLStringNom du quai d'arrivée.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure FeederJourney
FeederJourney+StructureDescription de la course de l’amenant.
VehicleJourney­IdentityLineRef1:1LineCodeIdentifiant de la ligne.
DirectionRef1:1Direction­CodeIndication de direction (aller/retour).
Framed­Vehicle­JourneyRef0:1+StructureIdentification de la course.
JourneyPattern­Info:::0:1Journey­Pattern­Info­GroupVoir Journey­Pattern­Info­Group.
VehicleJourney­Info:::0:1Vehicle­JourneyInfo­GroupVoir Vehicle­JourneyInfo­Group.
DisruptionGroup:::0:1Disruption­GroupVoir DisruptionInfo­Group.
ProgressMonitored0:1xsd:booleanSignale si l’information temps réel est disponible (oui par défaut).
Call TimesAimed­Arrival­Time0:1xsd:dateTimeHeure d’arrivée prévue à l’arrêt.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure MonitoredFeederArrivalCancellation
MonitoredFeederArrival­Cancellation+StructureInformation d’annulation de course.
LogRecorded­AtTime1:1xsd:dateTimeDate et heure auxquelles ces données ont été produites/enregistrées.
IdentityItemRef0:1ItemIdentifierIdentifie l’objet qui est annulé (voir le ItemRef correspondant dans les précédentes notifications d’information de correspondance).
Feeder
Inter­change
Identity
Interchange­Ref0:1Interchange­Code

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 ‘:’).

ConnectionLink­Ref1:1Connection­Link­CodeIdentifiant de la correspondance physique.
StopPoint­Ref0:1StopPoint­Code

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.

Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Stop­Point~Name0:1NLStringNom du point d'arrêt.
Journey InfoLineRef1:1LineCodeIdentifiant de la ligne.
DirectionRef1:1Destination­CodeIdentifiant de la direction (aller/retour).
Vehicle­JourneyRef1:1+Framed­Vehicle­JourneyRef­StructureIdentification de la course.
JourneyPatternRef0:1Journey­PatternCodeIdentifiant de la mission.
JourneyPatternName0:1NLStringNom ou numero de course présenté au public.
VehicleMode0:1air | 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 »

RouteRef0:1RouteCodeIdentifiant de l'itinéraire suivi.
Published­LineName0:1NLStringNom commercial de la ligne.
GroupOfLinesRef0:1GroupOfLinesCodeIdentifiant du Goupe de Lignes (réseau ou tout autre groupe de ligne auquel la course est rattachée).
DirectionName0:1NLString

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.

InfoReason0:1NLStringCause de l’annulation.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).

Structure ConnectionMonitoringDistributorDelivery

ConnectionMonitoringDistributor­Delivery+StructureInformation concernant le “partant”.
Attributesversion1:1VersionStringVersion du service intégrant le numéro de version de profil (voir 5.9) par exemple. ‘2.1:FR-IDF-2.4’.
LEADER:::1:1xxx­DeliveryVoir SIRI Partie 2-7.2.1.1 xxxDelivery.
PayloadWaitProlonged­Departure0:*+StructureDescription d’une prolongation d’attente*.*
Stopping­Position­Changed­Departure0:*+StructureDéplacement du point de départ (et donc du trajet de correspondance).
Distributor­Departure­Cancellation0:*+StructureAnnulation de départ.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure WaitProlongedDeparture
WaitProlongedDeparture+StructureDescription d’une prologation d’arrêt pour attente de l’amenant
LogRecorded­AtTime1:1xsd:dateTimeDate et heure auxquelles ces données ont été produites.
DistributorInfo:::1:1Distributor­Info­GroupVoir DistributorInfoGroup (6.3.3.2.4).
ChangeExpected­Departure­Time1:1xsd:dateTimeNouvelle heure de départ prévue.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure StoppingPositionChangedDeparture
StoppingPosition­ChangedDeparture+StructureDescription d’un déplacement (temporaire) de point d’arrêt.
LogRecorded­AtTime1:1xsd:dateTimeDate et heure auxquelles ces données ont été produites.
Distributor­Info:::1:1Distributor­Info­GroupVoir DistributorInfoGroup (6.3.3.2.4).
ChangeChangeNote1:1NLStringDescription de la nouvelle position (textuelle).
NewLocation0:1LocationNouvelle position de l’arrêt.
Structure Location
LocationStructure0:1+StructureGeospatial Location.
Attributesid0:1xsd:NMTOKENIdentifiant du point (pour un éventuel lien avec une base Géospatiale ou un SIG).
srsName0:1xsd:stringIdenfitiant du référentiel de projection (conforme EPSG, définit par l’OGC, et tel qu’utilisé par GML).
Coordinateschoix–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/long0:1Si choix Lat/long permet de renseigner les données.
i) Longitude0:1Longitude­TypeLongitude à partir du meridien de Greenwich : de.180° (Est) à +180° (Ouest). Degrés décimaux.
ii) Latitude0:1Latitude­TypeLatitude à partir de l’équateur. de -90° (Sud) à +90° (Nord) en degrés décimaux.
b) Coordi­nates0:1xsd:stringCoordonnées au format GML en cohérence avec l’attribut srsName.
Precision0:1DistancePrécision du positionnement (en mètres).
Structure DistributorDepartureCancellation
DistributorDeparture­­Cancellation+StructureIndication d’annulation de depart.
LogRecorded­AtTime1:1xsd:dateTimeDate et heure auxquelles ces données ont été produites.
DistributorInfo:::1:1Distributor­Info­GroupVoir DistributorInfoGroup(6.3.3.2.4).
Call timeReason1:1NLStringRaison de l’annulation.
anyExtension0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).
Structure DistributorInfoGroup
Distributor Inter­change_ IdentityInterchange­Ref0:1InterchangeCode

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 ‘:’).

Connection­Link­Ref1:1Connection­Link­CodeIdentifiant de la correspondance physique.
StopPoint­Ref0:1StopPoint­Code

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.

Distributor­Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
Journey InfoDistributor­Journey1:1Connecting­Journey­StructureDescription de la course du véhicule au départ.
Feeder InfoFeeder­Vehicle­JourneyRef0:*Framed­Vehicle­Journey­Ref­StructureInformation sur la course de l’amenant (identifiant de la ou des courses).
Structure ConnectingJourney
ConnectingJourneyConnecting­JourneyStructureCorrespondance planifiée : description des courses impliquées : alimentant (“feeder”) ou partant (« distributor”) suivant les cas.
Vehicle­Journey­IdentityLineRef0:1LineCodeIdentifiant de la ligne.
Framed­Vehicle­JourneyRef0:1+StructureIdentifiant de la course.
Journey­PatternInfo:::0:1JourneyPattern­InfoGroupVoir Journey­Pattern­Info­Group.
Vehicle­Journey­Info:::0:1VehicleJourney­InfoGroupVoir Vehicle­JourneyInfo­Group.
Disruption­Group:::0:1DisruptionGroupVoir Disruption­Group.
ProgressMonitored0:1xsd: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».

Aimed­Arrival­Time0:1xsd:dateTimeHeure d’arrivée prévue à la correspondance.
anyExtensions0:1anyEmplacement 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+StructureRequête d’information sur les véhicules
Attrib­utesversion1:1VersionStringVersion du service “Vehicle Monitoring”, intégrant le numéro de version de profil par exemple. ‘2.1:FR-1.0’.
End­point PropertiesRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Message­Identifier0:1Message­QualifierNuméro d’identification du message.
Topicchoix-1:1
a) Vehicle­Ref0:1VehicleCodeIdentifiant du véhicule.
b) LineRef0:1LineCodeIdentifiant de la ligne (tous les véhicules de la ligne seront remontés).
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2)

Abonnement aux informations sur les véhicules

VehicleMonitoring­SubscriptionRequest+StructureAbonnement aux informations sur les véhicules.
IdentitySubscriberRef0:1Participant­CodeIdentification du système demandeur ( voir SIRI Part 2 Common SubscriptionRequest parameters.).
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l'abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestVehicle­Monitoring­Request1:1+StructureVoir VehicleMonitoringRequest.
PolicyIncremental­Updates0:1xsd: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:1Choix
a) Change­Before­Updates0:1Positive­DurationTypePermet 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) Update­Interval0:1Positive­DurationTypePermet 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+StructureRéponse aux requêtes d’information sur les véhicules.
Attributesversion1:1VersionStringNuméro de version du service Vehicle Monitoring, intégrant le numéro de version de profil (voir 5.9) (valeur fixe).
LEADER:::1:1xxx­DeliveryVoir xxxDelivery.
PayloadVehicleActivity0:*+StructureFournit les informations concernant le véhicule.
VehicleActivity­Cancellation0:*+StructureSignale l’annulation du service du véhicule.
anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).

Structure VehicleActivity

VehicleActivity+StructureInformations sur le véhicule.
LogRecorded­At­Time1:1xsd:dateTimeHeure à laquelle la position du véhicule a été mise à jour.
CurrencyValid­Until­Time1:1xsd: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 Recorded­At­Time pour signifier que l'information n'est pas à prendre en compte (on ne peut en efffet pas laisser le champ vide).

IdentityItem­Identifier0:1ItemIdentifierIdentifiant, qui permettra par la suite une annulation (par exemple, particulièrement utile si l’on ne dispose pas d’identifant de véhicule).
Vehicle­Monitoring­Ref0:1Vehicle­Monitoring­IdentifierIdentifiant du véhicule.
StopProgressInfoProgress­Between­Stops0:1Location­StructurePosition du véhicule entre l’arrêt précédent et l’arrêt suivant.
Link­Distance0:1xsd:decimalDistance totale entre les deux arrêts (distance réelle sur le réseau routier).
Percentage0.1xsd:decimalPourcentage de cette distance déjà couverte par le véhicule.
Journey­InfoMonitored­Vehicle­Journey1:1Monitored­Vehicle­Journey 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.

MessageVehicle­Activity­Note0:*NLStringInformation textuelle concernant le véhicule et son état courant (positionnement, etc.).
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).

Structure VehicleActivityCancellation

VehicleActivityCancellation+StructureAnnulation de l’affectation d’un véhicule à une course.
End­pointRecorded­AtTime1:1xsd:dateTimeHeure à laquelle l’annulation a été signalée/publiée.
Event­IdentityItemRef0:1ItemIdentifierIdentifiant de l’objet annulé (voir ItemRef plus haut).
Vehicle­Monitoring­Ref0:1Vehicle­Monitoring­CodeIdentifiant du véhicule.
Framed­Vehicle­Journey­Ref0:1+StructureDescription de la course annulée.
LineRef0:1LineCodeIdentifiant de la ligne.
Journey­Pattern­Info:::0:1JourneyPattern­InfoGroupVoir SIRI Partie 2 JourneyPatternInfoGroup.
MessageReason0:*NLStringDescription textuelle de la cause de l’annulation.
anyExtensions0:1AnyEmplacement 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).

TopicTopicFiltering
DefaultPreview­IntervalNon.
FilterByInfo­ChannelOui.
Request PolicyRequestPolicy
Language

Non.

(si le message est disponible en plusieurs langues, toutes les langues sont systèmatiquement diffusées)

Access ControlAccessControl
Request­CheckingNon.
CheckInfo­ChannelOui.
anyExtensionsNon.

Requête au service « General Message »

GeneralMessageRequest+StructureRequête d’accès aux messages.
Attributesversion1:1VersionStringVersion du service « General Message », intégrant le numéro de version de profil (voir 4.2.9) (valeur fixe).
Endpoint PropertiesRequest­Timestamp1:1xsd:dateTimeDate d'émission de la requête (voir SIRI Partie 2 Common properties of SIRI Functional Service Requests).
Message­Identifier1:1Message­QualifierNuméro d'identification du message.
TopicInfo­Channel­Ref0:*InfoChannel­Code

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:

  • «Perturbation»,

  • «Information»,

  • «Commercial».

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 PolicyLanguage0:1xml: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.

anyExtensions0:1+StructureEmplacement pour extension utilisateur (cf 5.4.2.2).

Requête d’abonnement au service « General Message »

GeneralMessage­SubscriptionRequest+StructureRequête d’abonnement au service SIRI GeneralMessage.
IdentitySubscriberRef1:1Participant­CodeIdentifiant du système demandeur (voir SIRI Partie 2 Common SubscriptionRequest parameter.
Subscription­Identifier1:1Subscription­QualifierIdentifiant (externe) du canal d’abonnement.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate et heure prévues pour la fin de l’abonnement.
RequestGeneral­Message­Request1:1+StructureVoir GeneralMessageRequest.

Réponse du service « General Message » (structure générale)

ServiceDelivery+StructureSee SIRI Part 2-7.2.1 ServiceDelivery.
HEADER::1:1See ServiceDeliveryEn-tête générique des réponses.
PayloadGeneral­Message­Delivery1:*+StructureVoir GeneralMessageDelivery.

Réponse du service « General Message » (structure détaillée)

GeneralMessageDelivery+StructureContenu et modification des messages.
Attributesversion1:1Version­StringVersion du service, intégrant le numéro de version de profil (voir 5.9) (valeur fixe).
LEADER:::1:1xxx­DeliveryEn-tête (voir paragraphe 2.2*.).*
PayloadInfo­Message0:*+StructureLe message lui-même (voir InfoMessage ci dessous).
Info­Message­Cancellation0:*+StructureStructure d’annulation d’un message précédent (voir ci dessous).

Note: GeneralMessageDelivery doit contenir au moins un InfoMessage ou un InfoMessage­Cancellation (il peut bien sur en contenir plusieurs de chaque).

Description du « General Message »

InfoMessage+StructureMessage d’information.
attributeformat­Ref1:1FormatCode

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.

logRecordedAtTime1:1xsd:dateTimeHeure d'enregistrement du message.
IdentityItemIdentifier1:1ItemIdentifier

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.

IdentityInfoMessage­Identifier1:1IdentifierIdentifiant InfoMessage (sera utilisé pour les mises à jour et les abandons de message: toutes les mises à jour du message porteront le même InfoMessage­Identifier).
InfoMessage­Version0:1xsd:positive­IntegerVersion du InfoMessage.(considéré comme valant 1 si le champ n'est pas présent).
InfoChannelRef1:1InfoChannel

Canal auquel appartient le message.

Dans le cadre du profil FR, seules les valeurs suivantes seront utilisées pour identifier les canaux :

  • « Perturbation »1,

  • « Information »,

  • « Commercial ».

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 ».

CurrencyValidUntilTime1:1xsd: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 Info­Message­Identifier).

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).

SituationSituation­Ref0:*SituationCodeRéférence à un événement externe auquel est rattaché le message.
MessageContent1:1anyType

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.

anyExtensions0:1AnyEmplacement pour extension utilisateur (cf 5.4.2.2).

Annulation d’un « General Message »

InfoMessageCancellation+StructureAnnulation d’un message émis précédemment.
logRecorded­At­Time1:1xsd:dateTimeHeure à laquelle le message a été annulé.
IdentityItemRef1:1ItemIdentifierIdentifiant 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.
IdentityInfo­Message­Identifier1:1IdentifierRéférence InfoMessage du message à annuler.
Info­Channel­Ref0:1Info­ChannelCode

Canal auquel appartient le message.

Dans le cadre du profil IDF, seules les valeurs suivantes seront utilisées pour identifier les canaux:

  • « Perturbation »,

  • « Information »,

  • « Commercial ».

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 ».

anyExtensions0:1AnyEmplacement 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.

image

GM-1

Les champs de la structure sont les suivants:

  • Le champ «LineRef» permet de n'obtenir que les messages relatifs à la ligne indiquée ;

  • Le champ «StopPointRef» permet de n'obtenir que les messages relatifs à l'arrêt indiqué (Il convient d'utiliser ici un identifiant d'objet de référence de zone d'embarquement ou lieu d’arrêt multimodal/monomodal: granularité la plus fine possible dans tous les cas) ;

  • Le champ «JourneyPatternRef» permet de n'obtenir que les messages relatifs à la mission commerciale indiquée ;

  • Le champ «DestinationRef» permet de n'obtenir que les messages relatifs à la destination indiquée ;

  • Le champ «RouteRef» permet de n'obtenir que les messages relatifs à l'itinéraire indiqué ;

  • Le champ «GroupOfLinesRef» permet de n'obtenir que les messages relatifs au groupe de lignes indiqué (réseau ou tout groupe de lignes dont le code a été préalablement échangé comme donnée de référence : Noctilien, lignes attachées à un dépôt, etc.)

GM-2Les 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

image

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 :

  • Le champ «LineRef» identifie la ou les lignes concernées par le message.

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.

  • Le champ «StopPointRef» identifie le ou les points d'arrêt (cf 2.2) concernés par le message.

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.

  • Le champ «JourneyPatternRef» identifie la ou les missions concernées par le message.

Si une mission est indiquée, le message porte sur toute la mission sans restriction.

  • Le champ «DestinationRef» identifie la ou les destinations concernées par le message

Si une destination est indiquée, le message porte sur toutes les courses ayant cette destination sans restriction.

  • Le champ «RouteRef» identifie le ou les itinéraires concernés par le message.

Si un itinéraire est indiqué, le message porte sur tout l'itinéraire sans restriction.

  • Le champ «GroupOfLinesRef» permet d'indiquer que le message est relatifs au groupe de lignes indiqué (réseau ou tout groupe de lignes dont le code a été préalablement échangé comme donnée de référence : Noctilien, lignes attachées à un dépôt, etc.). Toutes les lignes du groupe de lignes sont alors concernées par le message.

  • Le champ «LineSection» identifie la ou les sections de lignes (premier et dernier arrêt ainsi que leur ligne d'appartenance) concernée(s) par le message.

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.

  • Le champ « Message » contient le message lui-même :

  • « NumberOfLines » est une information facultative de formatage précisant le nombre de lignes du message ;

  • « NumberOfCharPerLine » est une information facultative de formatage précisant le nombre maximum de caractères par ligne d’affichage dans le message ;

  • « MessageType » permet de donner un type au contenu du message. Les valeurs possibles pour ce type sont :

  • shortMessage : message texte court, par opposition au longMessage ; l'utilisation de ce code suppose que l'on disposera aussi d'une version longue du même message.

  • longMessage : message texte long, par opposition au shortMessage ; l'utilisation de ce code suppose que l'on disposera aussi d'une version courte du même message.

  • textOnly : texte libre sans restriction ni formatage particulier, mais n'utilisant que des caractères textes imprimables sans saut de ligne. Le profil établit depuis sa vesion 2.3 que la fourniture du message sous cette version est obligatoire. Un messageText est évidemment obligatoire quand MessageType est positionné à textOnly.

  • formattedText : texte formaté en nombre de lignes et de caractères (voir les champs précédents). Dans ce cas le retour chariot est <LF> seul (code ascii 10 en décimal) ;

  • HTML : format compatible HTML 4 ;

  • RTF : Rich Text Format ;

  • codedMessage : Ce type permettra par exemple de définir une bibliothèque de messages de n’en communiquer que le type (en laissant alors vide le champ texte).

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..

  • « MessageText » est une chaîne de caractères contenant un libellé de message (la langue du message peut être précisée et plusieurs « Message » peuvent être diffusés en une seule fois ce qui permet de diffuser un message en plusieurs langues ou sous plusieurs formes).

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-4En 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 Valid­Until­Time) ; le producteur n’envoie en effet que les messages actifs au moment de la requête.
GM-5En 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 Valid­Until­Time).

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+StructureRequête pour obtenir des informations temps reel sur un ‘Service’

Attrib­utesVersion1:1

Version­String

Version du service ‘Facility Monitoring’ integrant le numéro de version du profil France ‘2.1:FR-1.0’

End­pointProperties

Request­Timestamp

1:1

xsd:dateTime

Date d’émission de la requête

Message­Identifier

1:1

Message­Qualifier

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:1LineCode

Filtre permettant d’obtenir les informations temps reel de tous les « facilities » d’une ligne.

StopPoint­Ref0:1StopPoint­Code

Filtre permettant d’obtenir les informations temps reel de tous les « Facilities » d’un point d’arrêt.

VehicleRef0:1Vehicle­CodeFiltre permettant d’obtenir les informations temps réel de tous les services d’un véhicule.
StopPlaceRef0:1StopPlace­CodeFiltre permettant d’obtenir les informations temps réel de tous les services d’un lieu d’arrêt.

StopPlaceComponentRef

0:1StopPlaceComponent­CodeFiltre permettant d’obtenir les informations temps réel de tous les services d’un composant de lieu d’arrêt.

SiteRef

0:1Site­Code

Reference to a Site.

Utilisé pour les nouveaux modes et les parkings.

Request Policy

Maximum­FacilityStatus

0:1xsd:positive­IntegerNombre 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

VehicleMonitoring­SubscriptionRequest+StructureRequête d’abonnement pour obtenir les informations temps réels sur l’état des services.
IdentitySubscriberRef0:1Participant­CodeIdentification du système demandeur (See SIRI Part 2 Common SubscriptionRequest parameters).
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l’abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestFacility­Monitoring­Request1:1+StructureCf 6.6.1.
PolicyIncremental­Updates0:1xsd: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+StructureDescription de l’état des services.
Attributesversion1:1VersionStringNuméro de version du service Facility Monitoring.
LEADER:::1:1xxxService­Delivery
Pay­oadFacilityCondition0:*+StructureDescription de l’état d’un service.
anyExtensions0:1AnyEmplacement 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+StructureDescription de l’état d’une “Facility ».

Facility

(choice)

Facility1: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.

FacilityRef1:1FacilityCode

Identifiant d’une Facility.

L’utilisation de references aux facility sera privilégiée Voir FM-1.

StatusFacilityStatus1:1+StructureDescription de l’état d’un Facility (cf §6.6.3.2).
CountingMonitoredCounting0:1+StructureMise à jour du compteur associé à la « Facility » (cf §6.6.3.3).
PositionFacilityUpdatedPosition0:1+StructureMise à jour de la position de la « Facility » (cf §6.6.3.1.1).
SituationSituationRef0:1SituationCodeIdentifiant d’une SITUATION associée à l'état de l'installation.
Timing
information
ValidityPeriod0:*1+StructurePériode de validité (début et durée) de la condition des du jour-type Voir ValidityCondition.
anyExtensions0:1AnyEmplacement pour extension utilisateur (cf 5.4.2.2).
FM001La 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’
FM002A renseigner uniquement si non inclue dans les exchanges NeTEx
Facility+StructureDécrit l’état de la « Facility ».
IdentifyFacilityCode1:1FacilityCodeIdentifiant de la “Facility”.
DescriptionDescription0:1nLStringDescription de la f”acility”.
ClassFacilityClass0:1

fixedEquipment

mobileEquipment

siteComponent

site

parkingBay

vehicle

Définition de la catégorie de la «  Facility ».(cf 6.6.3.1.1.1).
Feature0:*enumeration

Fonctionalités du service.

Cf profil Accessiblité” NeTEx [R1].

TemporalValidityCondition0:*1+StructurePériode de validité de la « Facility ».
LocationFacilityLocation0:1+StructureLocalisation du service exprimée sous la forme d’un identifiant d’objet parmi les types identifies ci-dessous.
LineRef0:1LineCodeIdentifant d’une ligne (au sens Transmodel) sur laquelle le service est localisé.
StopPointRef0:1StopPoint­CodeIdentifiant d’un point d’arrêt planifié (au sens Transmodel) sur lequel le service est localisé.
VehicleRef0:1Vehicle­CodeIdentifiant d’un véhicule (au sens Transmodel) sur lequel le service est localisé.
StopPlaceRef0:1Stop­Place­CodeIdentifiant d’un lieu d’arrêt (au sens Transmodel) sur lequel le service est localisé.
StopPlaceComponentId0:1ComponentIdIdentifiant d’un composant de lieu d’arrêt (au sens Transmodel) sur lequel le service est localisé.
OperatorRef0:1OperatorRef

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.

AccessibilityAccessibilityAssessment0:1+StructureDescription des informations d’accessibilité liées à l’état du service. (cf 6.6.3.1.1.3).
anyExtensions0:1AnyEmplacement 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-FMDescription
fixedEquipment« Facility » est un équipement fixe.
mobileEquipment« Facility » est un équipement mobile (embarqué).
siteFacility est un site.
parkingBayFacility est un emplacement de parking.
vehicleFacility 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+StructureDécrit l’état d’une « Facility ».
StatusStatus1:1unknown | available | notAvailable | partiallyAvailable | added | removedEtat d’une “Facility” (cf 6.6.3.2.1).
DescriptionDescription0:1nlStringDescription associée à l’état d’une « Facility ».
Special NeedsAccessibility­Assessment0:*+StructureDé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-FMDescription
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
CountingType1:1CountingTypeEnumerationNature de ce qui est compté (cf 6.6.3.3.1).
CountedFeatureUnit0:1CountedFeatureUnitEnumerationUnité de comptage (cf 0)
TypeOfCountedFeature0:1TypeOfValueStructure

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 :

  • Nombre de kilomètres restant pour les vélos en libre service ;

  • Charge batterie disponible ;

  • A prédéfinir.

CountChoix-1:1
a) Count0:1xsd:integerValeur comptée.
b) Percentage0:1PercentageTypeValeur exprimée en pourcentage (0.0 à 100.0) de la valeur maximale possible.
Counting
description
Trend0:1CountingTrendEnumerationTendance du comptage (cf 6.6.3.3.3)
Description0:1NaturalLanguageStringStructureDescription de ce qui est compté.
Description de l’enum ‘CountingType’

Les valeurs retenues par le profil SIRI France sont les suivantes :

ValueDescription
availabilityCountComptage des véhicules disponibles, des appareils, de l'espace, etc.
reservedCountComptage du véhicule réservé, des appareils, de l'espace, etc.
outOfOrderCountComptage des véhicules, appareils, espaces hors service, etc.
presentCountComptage des personnes pésentes.
currentStateCount

Niveau de ressource ou statut de la mesure (carburant, etc.).

Associé à un TypeofCOuntedFeature.

FM001L’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 :

ValueDescription
baysEmplacement pour garer un véhicule.
seatsPlace assise.
devicesLes appareils divers (comme les casiers, les guides audio, etc.).
vehiclesTout type de véhicule.
personsPersonne physique.
Description de l’enum ‘Trend'

Les valeurs retenues par le profil SIRI France sont les suivantes :

ValueDescription
decreasingLa valeur est actuellement en baisse.
increasingLa valeur est actuellement en hausse.
stableLa valeur est actuellement stable.
unstableLa valeur est actuellement instable sans tendance claire.
unknownLa 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.

SX001Si 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+StructureRequête pour obetnir des informations sur l’état de la « Facility »

AttributesVersion0:1VersionStringVersion du service ‘Situation Exchange’ integrant le numéro de version du profil France ‘2.1:FR-1.0’
TimestampRequestTimestamp1:1xsd:dateTimeDate d’émission de la requête
Contextualised
Request
EndpointGroup
MessageIdentifier0:1MessageQualifierNuméro d’identification du message
TemporalSubscriptionGroupPreviewInterval0:1PositiveDurationTypeDuré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.
StartTime0:1xsd:dateTimeHeure 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
ValidityPeriod0:1→structurePlage temporelle pour les incidents à inclure tous les incidents actuels seront inclus.
StartTime1:1xsd:dateTimeHeure de début des incidents. Les incidents avec une heure de début après cette heure seront inclus.
EndTime0:1xsd:dateTimeHeure de fin des incidents. Les incidents avec une heure de fin avant cette heure ou sans heure de fin à cette heure seront inclus.
EndTimePrecision0:1Enum: day | hour| second | millisecondPrécision avec laquelle interpréter l'heure de fin. La valeur par défaut est à la seconde.
AffectedModeGroup→GroupLes éléments du groupe MODE.
VehicleMode0:1→VehicleModesOfTransportation EnumMode du véhicule : voir l’énumération complète dans le XSD SIRI [R10].
AccessMode0:1Enum {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”
Severity0:1enum

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)

SituationClassifierFilterGroupKeywords0:1xsd: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»
SituationNetworkFilterGroup0:1Group

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 PolicyMaximumNumberOfSituationElements0:1xsd:positiveIntegerLe 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

SituationNetworkFilterGroupOperatorRef0:1

→OperatorCode

(xsd:NMToken)

Filtre les résultats pour n'inclure que les SITUATIONS relatives à l'Opérateur.
NetworkRef0:1→NetworkCodeFiltre les résultats pour n'inclure que les SITUATIONS relatives au réseau.
choix-1:1Filtre les résultats pour n'inclure que les SITUATIONS relatives aux LIGNES données
a) LineRef0:*

→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) Lines0:1+structure
LineDirection1:*+LineDirectionStructureFiltre les résultats pour n'inclure que les SITUATIONS relatives aux Lignes/Direction spécifiées.
StopPointRef0:*

→StopPointCode

(xsd:NMToken)

Filtre les résultats pour n'inclure que les SITUATIONS relatives points d’arrêt spécifiés
FacilityRef0:*→FacilityCodeFiltre 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+StructureDemande d’abonnement au Service d’échange de situation.
SubscriptionIdentityGroupSubscriberRef0:1→ParticipantCodeVoir SIRI Partie 2 “Common SubscriptionRequest parameters.”
SubscriptionIdentifier1:1SubscriptionQualifierStructureVoir SIRI Partie 2 “Common SubscriptionRequest parameters.”
LeaseInitialTerminationTime1:1xsd:dateTimeVoir SIRI Partie 2 “Common SubscriptionRequest parameters.”
RequestSituationExchangeRequest1:1+Structure
Situation ExchangeSubscriptionPolicyIncrementalUpdates0:1xsd: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+StructureDéfinition et mise à jour des informations de perturbation et messages IV associés.
Attributesversion1:1VersionStringVersion Identifier d’une perturbation,, par exemple ‘1.1a’.
HEADER:::1:1xxxServiceDeliveryVoir SIRI Partie 2 xxxServiceDelivery.
SituationExchangePayloadGroupPtSituationContext0:1+StructureDécrit les valeurs communes à toutes les SITUATIONS de la diffusion.
Situations0:1+Structure
PtSituationElement0:*+StructureDéfinition des pertrubations et messages IV associés (cf 6.7.4.1).

PtSituationElement

PtSituationElement+StructureDescription d’une perturbation
LogCreationTime1:1xsd:dateTimeHeure de creation de SITUATION
SituationSharedIdentityGroupSituationBasedIdentityGroup→GroupÉléments Référence à une SITUATION ou mise à jour d'une SITUATION. ParticipantRef est facultatif et peut être fourni à partir du contexte.
CountryRef0:1→CountryCodeCode Pays du participant
ParticipantRef1:1→ParticipantCodeIdentifiant du système participant qui crée la SITUATION. Voir la partie 2.. Identifiant Unique par pays.
SituationNumber1: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→GroupType de référence pour une mise à jour d’une SITUATION. ParticipantRef est facultatif et peut être fourni à partir du contexte.
Version0: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.

SituationInfoGroupSource0:1+SituationSourceStructureSource d’une SITUATION
SourceType1:1Enum

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

LogVersionedAtTime0:1xsd:dateTime
PtSituationBodyGroup\StatusGroupVerification0:1Enum {unknown|unverified|verified}

Indique si la SITUATION a été vérifiée. Il s’agit d’un enuméré.

Valeur par défaut : « unknown ».

Progress0:1Enum

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

QualityIndex0:1Enum {certain|veryReliable|reliable|unreliable|unconfirmed}

Évaluation de l'exactitude probable des données. Valeurs d'énumération

Valeur par défaut : unconfirmed

Publication0:*PublicationStatusStatut de publication. Un ensemble spécifié de sous-états auxquels une SITUATION peut être attribuée.
PtSituationBodyGroup\TemporalGroupValidityPeriod1:*rangeUne ou plusieurs Période d'application globale inclusive de la SITUATION
StartTime1:1xsd:dateTimeL'horodatage de début (inclusif)
EndTime0:1xsd:dateTimeL'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".
EndTimeStatus0:1Enum: {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
Repetitions0:1DayTypeLa 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”.
DayType1:*enumJour Type.
PublicationWindow0:*rangeFenê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.
StartTime1:1xsd:dateTimeL'horodatage de début (inclusif).
EndTime0:1xsd:dateTimeL'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".
EndTimeStatus0:1Enum: {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 ».

ClassifierGroupReasonGroup1:1enum
ReasonName0:1string
Severity0:1enum

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).

Priority0:1nonNegativeInteger

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.

Sensitivity0:1Enum {high|medium|low}

Confidentialité de SITUATION.

Valeurpar défaut : medium

Audience0:1Enum {public|emergencyService|authorities|transportOperators}Audience de SITUATION.
ScopeType0:1enum

Type de périmètre de SITUATION.

Définition de l’énuméré : voir 6.7.4.1.5.

Planned0:1boolean

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.

Keywords0:1xsd: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»

  • “Information”

  • “Commercial”

DescriptionGroupSummary0:*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.

Description0:*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.

Detail0:*DefaultedTextDétails descriptifs supplémentaires sur la SITUATION. Pour l'utilisation du texte par défaut.
Advice0:*DefaultedTextAutres conseils aux passagers. Pour l'utilisation du texte par défaut.
Internal0:1DefaultedTextDescription de la SITUATION à usage (interne) de l'entreprise. Pour l'utilisation du texte par défaut.
Images0:1ImageAjout d’une ou plusieurs Images.
Image1:*+Structure
InfoLinks0:1InfoLinkUn ou plusieurs InfoLinks pour description.
InfoLink1:*+Structure
Affects0:1+Structure

Identification des parties du réseau de transport affectées par la SITUATION.

Voir 6.7.4.1.7.6.

PtBodyGroupConsequences0:1many

One or more consequences.

Description des consequences de l’évènement

Consequence1:*+StructureVoir 6.7.4.1.6
PublishingActions0: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+StructureInformation relative à la source des données de la SITUATION
 Country0:1→CountryCodePays d’origine de la Source. Code IANA.
 SourceType1:1enum

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.

SituationSourceDetailsGroupEmail0:1stringEmail du fournisseur
Phone0:1phoneNumberNuméro téléphone fournisseur.
Web0:1anyURLURL du fournisseur.
Description de l’enum SourceType

Les valeurs retenues par le profil SIRI France sont les suivantes :

SIRI-SXDescription
directReportRapport remis en direct
emailRapport reçu via email
phoneRapport reçu via téléphone
postRapport reçu via courrier postal
feedRapport reçu via alimentation automatique
radioRapport reçu via radio
tvRapport reçu via TV
webRapport reçu via website
textRapport reçu via message
otherRapport reçu via autres moyens
Decription de l’enum ‘Progress’

Les valeurs retenues par le profil SIRI France sont les suivantes :

SIRI SXDescription
openSituation en cours
publishedSituation en cours et publiée
closedSituation terminée
SX-2Une 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 :

GroupSIRI-SX
Miscellaneousunknowninconnu
incidentincident
bombExplosionexplosion d’une bombe
securityAlertalerte sécurité
firefeu
vandalismvandalisme
accidentaccident
overcrowdedsurchargé
insufficientDemandDemande insiffisante
lightingFailurePanne d’éclairage
serviceFailureDéfaut de service
congestioncongestion
routeBlockageBlocage de l’itinéraire
personOnTheLinePersonne sur la ligne
vehicleOnTheLineVéhicule sur la ligne
objectOnTheLineObjet sur la ligne
animalOnTheLineAnimal sur la ligne
routeDiversionDéviation
roadClosedRoute fermée
roadworksTravaux
specialEventEvénement spécial
bridgeStrikeGrève de pont
undefinedProblemProblème non défini
Personnel reasons

Les valeurs retenues par le profil SIRI France sont les suivantes :

GroupSIRI-SX
Personnel ReasonunknownInconnu
staffSicknessPersonnel Malade
staffAbsencePersonnel absent
staffInWrongPlacePersonne mal positionné
staffShortageManque de personnel
industrialActionGrève.
undefinedPersonnelProblemProblème de personnel non défini
SIRI-SX
Personne sub lReasonstaffInjuryBlessure du personnel
contractorStaffInjuryPersonnel sous-traitant malade
unofficialIndustrialActionGrève officieuse
staff sicknessPersonnel malade
industrial actionGrève
Equipment reasons

Les valeurs retenues par le profil SIRI France sont les suivantes :

SIRI-SX
Equipment Reasonunknowninconnu
signalProblemProblème de signalisation
signalFailurePanne de signalisation
derailmentdéraillement
engineFailurePanne moteur
breakDownPanne
technicalProblemProblème technique
repairWorkEn réparation
constructionWorkTravaux de construction
maintenanceWorkEn maintenance
powerProblemProblème d’alimentation
fuelProblemProblème de carburant
swingBridgeFailureÉchec du pont tournant
escalatorFailurePanne d’escalator
liftFailurePanne d’ascenseur
gangwayProblemProblème de passerelle
closedForMaintenanceFermeture pour maintenance
fuelShortagePénurie de carburant
deicingWorkTravaux de dégivrage
wheelProblemProblème de roue
luggageCarouselProblemProblème carrousel à bagages
undefinedEquipmentProblemProblème d’équipement non défini
SIRI-SX
Equipment SubreasontractionFailureDéfaut de la traction
defectiveTrainTrain défectueux
slipperyTrackVoie glissante
trackCircuitProblemproblème de circuit de voie
Signal and Switch FailureÉchec du signal et de switch
brokenRailrail cassé
poorRailConditionsmauvaises conditions ferroviaires
lackOfOperationalStockmanque de stock opérationnel
defectiveFireAlarmEquipmentÉquipement d’alarme incendie défectueux
defectivePlatformEdgeDoorsportes palières défectueuses
defectiveCctvCCTV défectueux
defectivePublicAnnouncementSystemSystème d’annonce publique défectueux
ticketingSystemNotAvailableSystème billetique non disponible
levelCrossingFailureDéfaut deu passage à niveau
trafficManagementSystemFailureDéfaillance du système de gestion du trafic
emergencyEngineeringWorkTravaux d’ingénierie d’urgence
lateFinishToEngineeringWorkfinition tardive de travaux d’ingénierie
overheadWireFailurePanne de cables aérien
Environment reason

Les valeurs retenues par le profil SIRI France sont les suivantes :

GroupSIRI-SX
Environment ReasonunknownInconnu
fogbroullard
roughSeaMer agitée
heavySnowFallfortes chutes de neige
heavyRainFortes pluies
strongWindsVents forts
tidalRestrictionsRestriction liée aux marées
highTideMarée Haute
lowTideMarée basse
iceGlace
frozenGel
hailGrêle
highTemperaturesTempérature élevée
floodingInnondation
waterloggedSol détrempé
lowWaterLevelniveau d’eau faible
highWaterLevelniveau d’eau élevé
fallenLeavesFeuilles mortes
fallenTreeChute d’arbres
landslideglissement de terrain
undefinedEnvironmentalProblemProblème environmental non défini
GroupSIRI-SX
Environment Weather SubreasondriftingSnowNeige à la dérive
blizzardConditionsConditions de blizzard
stormDamagedégâts de tempête
stormConditionsConditions de tempête
slipperinessglissance
iceDriftDérive de glace
glazedFrostglacé
lightningStrikecoup de foudre
avalanchesavalanches
flashFloodscrues éclair
Environment ground Subreasonmudslideglissement de terrain
rockfallschutes de pierres
subsidenceaffaissement
earthquake­DamageDégats Tremblement de terre
sewerOverflowDébordement d’égout
grassFireFeu d’herbe
Autres raisons

Unknown / UndefinedReasons

Description de l’enum ‘Severity’

Les valeurs retenues par le profil SIRI France sont les suivantes :

SIRI-SXDescription
unknownInconnu
slightLéger
normalNormal
severeSévère
noImpactPas d’impact
undefinedNon défini
Description de l’enum ‘ScopeType’

Les valeurs retenues par le profil SIRI France sont les suivantes :

SIRI-SXDescription
generalLa perturbation a un impact global.
operatorLa perturbation a un impact sur un opérateur spécifique.
networkLa perturbation a un impact sur tout le réseau.
routeLa perturbation a un impact sur un itinéraire particulier.
lineLa perturbation a un impact sur une ligne particulière.
placeLa perturbation a un impact sur un lieu particulier.
StopPlaceLa perturbation a un impact sur un lieu d’arrêt particulier.
stopPointLa perturbation a un impact sur un point d’arrêt particulier.
vehicleJourneyLa perturbation a un impact sur une course spécifique.
Description de la structure ‘Consequences’
PtConsequence+StructureEffet d’une SITUATION sur le service
ClassifiersCondition0:*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)

Severity1:1enumGravité de la SITUATION. La valeur par défaut est normale (cf 6.7.4.1.4).
AdviceAdvice0:1+PtAdviceStructureConseils aux passangers (cf ci-dessous)
AdviceRef0:1id

Identifiant de la norme.

Message d'information complémentaire aux passagers

Details0:*nlStringConseils textuels supplémentaires aux passagers.
BlockingBlocking0:1+StructureComment la perturbation doit être gérée dans les systèmes d'information. Cf ci-après
JourneyPlanner0:1boolean

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

ActivityBoarding0:1+StructurePublic visé par SITUATION. Voir les lignes suivantes.
ArrivalBoardingActivity0:1enumType d'embarquement et de débarquement autorisé à l'arrêt à l’arrivée. La valeur par défaut est Embarquement.
DepartureBoardingActivity0:1enumType d'embarquement et de débarquement autorisé à l'arrêt au départ. La valeur par défaut est Embarquement.
DelayDelays0:1+StructureRetards prévus .
Delay0:1dPositiveDurationTemps de trajet supplémentaire nécessaire pour surmonter les perturbations.
SX-3Les 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-SXDescription
unknowninconnu
altereddégradé
cancelledannulé
delayedretardé
divertedDévié
noServicepas de service
disruptedperturbé
additionalServiceservice supplémentaire
specialServiceservice spécial
onTimeà l’heure
normalServiceservice normal
intermittentServiceservice intermittant
extendedServiceservice étendu
splittingTraintrain fractionné
replacementTransporttransport de remplacement
arrivesEarlyen avance
shuttleServiceservice navette
replacementServiceservice de remplacement
undefinedServiceInformationservice d’information inconnu.
Description de la structure ‘Publishing Actions’
PublishingActions+StructureIndication par type de canal de communication d’actions à réaliser. Permet la diffusion des messages IV complémentaires sur des localisations particulières.
ActionsGroupPublishToWebAction0:*+StructurePublication sur le web. Cf 6.7.4.1.7.1
PublishToMobileAction0:*+StructurePublication sur outils mobiles. Cf 6.7.4.1.7.2
PublishToDisplayAction0:*+StructureDiffusion sur des afficheurs Embarqués / Sol
NotifyByEmailAction0:*+StructurePublication via email. Cf 6.7.4.1.7.3
NotifyBySmsAction0:*+StructurePublication via SMS.Cf 6.7.4.1.7.5
Description de la structure “PublishToWebAction”
PublishToWebAction+StructureParamètres de publication sur le canal Web.
ParameterisedActionParameterisedAction0: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

 Incidents0:1booleanA inclure dans les listes de SITUATION sur le site Web. La valeur par défaut est 'vrai'.
 HomePage0:1booleanA inclure sur la page d'accueil du site Web. La valeur par défaut est 'faux'.
 Ticker0:1booleanA inclure dans la bande de défilement mobile. La valeur par défaut est 'faux'
 SocialNetwork0:*stringA 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+StructureParamètres de publication sur le canal Téléphone Mobile.
ParameterisedActionParameterisedAction0: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

 Incidents0:1booleanInclure dans les listes de SITUATION sur le site Web mobile. La valeur par défaut est ’true’.
 HomePage0:1booleanInclure sur la page d'accueil du site Web mobile. La valeur par défaut est ’false’.
Description de la structure “PublishToDisplayAction”
PublishToDisplayAction+StructureParamètres pour diffuser sur un afficheur
ParameterisedActionParameterisedAction0: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

 OnPlace0:1booleanIndique si il s’agit d’un afficheur Sol : Par Défaut 'true'.
 Onboard0:1booleanIndique si il s’agit d’un afficheur Embarqué :. Par Défaut 'false'.
Description de la structure « NotifyByEmailAction”
NotifyByEmailAction+StructureParamètres pour diffuser sur le canal Email
ParameterisedActionParameterisedAction0: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.

PushedActionStructureBeforeNotices0:1+StructureIndique si un rappel doit être envoyé, cf lignes ci-dessous.
Interval0:*→DurationTypeInterval avant la date de début auquel envoyer le rappel.
ClearNotice0:1BooleanIndique si un avertissement de fin doit être envoyé.
 email0:1→EmailAddressTypeAdresse email à laquelle le rappel doit être envoyé.
Description de la structure “NotifyBySmsAction”
NotifyBySmsAction+StructureParamètres de publication sur le canal SMS
ParameterisedActionParameterisedAction0:1+Structure

Hérité de ParameterisedAction.

ParameterisedAction : utilisé pour permettre de définir un message SMS cf 6.7.4.1.7.6.

PushedActionStructureBeforeNotices0:1+StructureIndique si un rappel doit être envoyé, cf lignes ci-dessous.
Interval0:*→DurationTypeInterval avant la date de début auquel envoyer le rappel.
ClearNotice0:1BooleanIndique si un avertissement de fin doit être envoyé.
 Phone0:1→PhoneTypeNuméro de téléphone auquel envoyer le rappel.
 Premium0:1boolean

Indique si le contenu est signalé comme soumis à des frais supplémentaires.

Par défaut 'false'.

Description de la structure ‘Affect’
Affects+StructurePérimètre de la SITUATION et de ses consequences.
LevelAreaOfInterest0:1enumPérimètre géographique
OperatorsOperators0:1+StructurePérimètre niveau OPERATOR
choix-1:1
a) AllOperators0:1emptyTous les OPERATORs sont concernés
b) AffectedOperator0:*+StructureAnnotation pour les opérateurs impactés par la SITUATION (cf 6.7.4.1.7.6.5)
networkNetworks0:1+StructureIdentification des réseaux impactés
AffectedNetwork1:*+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)

StopStopPoints0:1+Structure

SCHEDULED STOP POINT (Point d’arrêt planifié) impactés par SITUATION.

Points d’arrêt cible de la publication

AffectedStopPoint1:*+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

StopPlaceStopPlaces0:1+StructureSTOP PLACEs impactés par SITUATION. Cf lignes ci-dessous.
AffectedStopPlace1:*+StructureAnnotation pour les STOP PLACE impactés.
PlacePlaces0:1+StructurePLACEs impactés par SITUATION. Cf lignes ci-dessous.
AffectedPlace1:*+StructureAnnotation pour les PLACE.
JourneyVehicleJourneys0:1+Structure

VEHICLE JOURNEYs impactés par une SITUATION. Cf lignes ci-dessous.

Liste des Courses cibles de la publication.

AffectedVehicleJourney1:*+Structure

VEHICLE JOURNEY impacté par SITUATION.

Course cible de la publication cf 6.7.4.1.7.6.3

VehiclesVehicles0:1+StructureVEHICLEs impactés par une SITUATION. Cf lignes ci-dessous.
AffectedVehicle1:*+StructureAnnotation pour les VEHICLE impactés.

Description de la structure AffectedNetwork

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.

OperatorsAffectedOperator0:*+StructureAnnotation à l’ Operator de services impacté par SITUATION.
NetworkNetworkRef0: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)

NetworkName0:*nlStringNom du reseau (NETWORK).
RoutesAffected0:*nlStringDescription textuelle de l'ensemble des ROUTE affectées.
ModeAffectedModeGroup0:1→GroupIdentification des modes impactés
Lines choix-1:1Périmètre de la LINE
a) AllLines0:1emptyTypeToutes les LINEs du NETWORK sont impactées.
b) SelectedRoutes0:1emptyType

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) AffectedLine0:*+StructureLignes du réseau impactées (cf 6.7.4.1.7.6.4).

Description de la structure AffectedStopPoint

AffectedStopPoint+StructureAnotation au point d’arrêt topologique impacté par la SITUATION.
StopStopPointRef0: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.

ModesAffectedModes0:1MODE impactés.
choix-1:1
a) AllModes0:1emptyTypeTous les modes du SCHEDULED STOP POINT (Point d’arrêt planifié) sont impactés.
b) Mode0:*→AffectedModeGroupModes impactés par la SITUATION.
ZonePlaceRef0:1

→ZoneRefStructure

(xsd:NMTOKEN)

Identifiant du Lieu où se situe le SCHEDULED STOP STOP (Point d’arrêt planifié)
PlaceName0:*nlStringNom du lieu où se situe le SCHEDULED STOP STOP (Point d’arrêt planifié).
 AccessibilityAssessment0:1+StructureACCESSIBILITY ACCESSMENT pour le SCHEDULED STOP POINT (Point d’arrêt planifié).
 StopCondition0:*RoutePointTypeEnumeration

Etat du SCHEDULED STOP POINT (Point d’arrêt planifié).

Plusieurs condtions peuvent être valident en même temps.

 ConnectionLinks0:1manyCONNECTION links du SCHEDULED STOP POINT (Point d’arrêt planifié) impactés par la SITUATION.
AffectedConnectionLink0:*+StructureAnnotation au CONNECTION link impactée par la SITUATION.

Description de la structure AffectedVehicleJourney

AffectedVehicleJourney+Structure

Annotation à la course référencée impactée par la SITUATION.

Courses cibles de l’action de publication.

choix-1:1Identifiant d’une course impactée
b) VehicleJourneyRef1:*→VehicleJourneyCode
(xsd:NMTOKEN)
Identifiant de course (au sens Transmodel)

Description de la structure “AffectedLine”

AffectedLine+StructureAnnotation à la LINE impactée par la SITUATION.
LineLineRef1:1

→LineCode

(xsd:NMTOKEN)

Identifiant de ligne (LINE).
DestinationDestinations0:*DESTINATIONs impactée.
AffectedStopPoint0:1+StructurePoint d’arrêt impacté par SITUATION.
DirectionDirection0:*+StructureDIRECTIONs impactées.
DirectionRef0:1

→DirectionCode

(xsd:NMTOKEN)

Identifiant de DIRECTION.
DirectionName0:*nlStringNom de DIRECTION.

Description de la structure « AffectedOperator”

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.

OperatorOperatorRef0:1→OperatorCodeIdentifiant de l’operateur (au sens transmodel).
Description de la structure ParameterisedAction
ParameterisedAction+Structure 
SimpleActionStructureActionStatus0:1enumStatus de l’Action. cf 6.7.4.1.7.7.1.
Description0:1nlStringDescription de l’action.
ActionData0:*+StructureInformation associée à l’action, cf lignes ci-dessous.
Name1:1xsd:NMTOKENNom de l’action.
Prompt**0:*nlStringLibéllé du message associé au publishingAction.
PublishAtScope**0:1+StructureZone de diffusion du message ‘Prompt’.
ScopeType0:1enumType de l’action (cf 6.7.4.1.5).
Affects0:1+StructureZone de diffusion du message ‘prompt’, cf 6.7.4.1.7.6.

Description de l’enum ‘ActionStatus’

Les valeurs retenues par le profil SIRI France sont les suivantes :

ValueDescription
openAction ouverte non publiée.
publishedAction publiée.
closedAction close.

Eléments techniques des messages

En-têtes des requêtes

Structure générale des requêtes

ServiceRequest+StructureStructure générale des requêtes
logRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Endpoint PropertiesAddress0:1Endpoint­AddressAdresse réseau de destination de la réponse (ici une URL dans le cadre d’une implémentation SOAP).
Requestor­Ref1:1Participant­CodeIdentifiant du demandeur (reprendre la structure [fournisseur] des identifiants).
Message­Identifier1:1Message­QualifierIdentifiant unique de ce message.
PayloadConcrete service subscription-1:1choixSi la suite contient plusieurs réponses, elles doivent toutes être du même type.
a) Production­Timetable­Request0:1+StructureVoir SIRI Partie 3 – Production Timetable.
b) Estimated­Timetable­Request0:1+StructureVoir SIRI Partie 3 – Estimated Timetable.
d) StopMonitoring­Request0:1+StructureVoir SIRI Partie 3 – Stop Monitoring.
f) Vehicle­Monitoring­Request0:1+StructureVoir SIRI Part 3 – Vehicle Monitoring.
h) Connection­Monitoring­Request0:1+StructureVoir SIRI Partie 3 – Connection Monitoring.
i) General­Message­Request0:1+StructureVoir SIRI Partie 3 – General Message.
j) FacilityMonitoring­Request0:1+StructureVoir SIRI Partie 4 – Facility Monitoring. SIRI .
k) SituationExchange­Request0:1+StructureVoir 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+StructurePropriétés générales des requêtes.
Server Endpoint AddressCheck­Status­Address0:1Endpoint­AddressAdresse (URL) de destination du CheckStatus.
Subscribe­Address0:1Endpoint­AddressAdresse (URL) de destination des demandes d’abonnement.
Manage­Subscription­Address0:1Endpoint­AddressAdresse (URL) de destination pour la gestion des abonnements déjà établis (interruption, …).
Get­Data­Address0:1Endpoint­AddressAdresse (URL) de destination des réponses aux requêtes.
Client End­point AddressStatus­Response­Address0:1Endpoint­AddressAdresse (URL) de destination des réponses aux CheckStatus.
Subscriber­Address0:1Endpoint­AddressAdresse (URL) de destination des réponses aux demandes de notification.
Notify­Address0:1Endpoint­AddressAdresse (URL) de destination des notifications.
Consumer­Address0:1Endpoint­AddressAdresse (URL) de destination des données.
Locationchoix-1:1Format des coordonnées géographiques
a) Wgs­Decimal­Degrees0:1EmptyTypeLes coordonnées Géospatiales sont données en latitude et longitude WGS84, en degré décimal de l’arc.
b) Gml­Coordinate­Format0:1srsName­Type

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 SpanData­Horizon0:1Positive­Duration­TypeDurée maximale de l’horizon de données des requêtes.
Request­Timeout0:1Positive­Duration­TypeDélai à partir duquel on peut considérer qu’une requête ne sera plus traitée (par défaut 1 minute).
Delivery MethodDelivery­Method0:1fetch | directAbonnement à une phase (voir en début de document) uniquement : donc direct.
Multipart­Despatch0:1xsd:booleanAutorisation de segmentation des messages : Non dans le profil France.
Confirm­Receipt0:1xsd:booleanConfirmation des réceptions: Non dans le profil France.
Resource UseMaximum­Number­Of­Subscriptions0:1xsd:positive­IntegerNombre maximal d’abonnements pour un unique abonné (par défaut non limité).
anyExtensions0:1anyEmplacement 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+StructureStructure générique de réponse aux requêtes.
Attrib­utessrsName0:1xsd:stringIdentifiant du système de projection (pour la localisation spatiale) : probablement Lambert 2 étendu (soit EPSG:27582 -NTF(Paris)/Lambert II étendu).
LogResponse­Timestamp1:1xsd:dateTimeHeure de production de la réponse.
End­­poi­nt proper­tiesProducerRef0:1Participant­CodeIdentifiant du producteur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR)
Response­Message­Identifier1:1Message­QualifierIdentifiant unique du message de réponse.
Request­Message­Ref1:1Message­QualifierIdentifiant de la requête à laquelle on répond.
StatusStatus1:1xsd:booleanIndique si la requête a pu être traitée avec succès ou non.
Error­Condition0:1See belowSignalement d’erreur (voir le paragraphe sur la gestion des erreurs).
choix-1:1
a) Capability­Not­Supported­Error0:1+ErrorRequête non supportée.
b) OtherError0:1+ErrorAutre erreur.
Description0:1ErrorDescriptionDescription de l’erreur .
Payloadchoix-1:1Plusieurs des structures suivantes peuvent se succéder, mais elles doivent être toutes du même type.
a) Production­Timetable­Delivery0:*+StructureVoir SIRI Partie 3 – Production Timetable.
b) Estimated­Timetable­Delivery0:*+StructureVoir SIRI Partie 3 – Estimated Timetable.
d) Stop­Monitoring­Delivery0:*+StructureVoir SIRI Partie 3 – Stop Monitoring.
e) Vehicle­Monitoring­Delivery0:*+StructureVoir SIRI Partie 3 – Vehicle Monitoring.
g) Connection­Monitoring­Feeder­Delivery0:*+StructureVoir SIRI Partie 3 – Connection Monitoring.
h) Connection­Monitoring­Distributor­Delivery0:*+StructureVoir SIRI Partie 3 – Connection Monitoring.
i) General­Message­Delivery0:*+StructureVoir SIRI Partie 3 – General Message.
j) FacilityMonitoring­Delivery0:*+StructureVoir SIRI Partie 4 – Facility Monitoring.
k) SituationExchange­ Delivery0:*+StructureVoir SIRI Partie 5 – Situation Exchange.

Structure des réponses aux services

xxxDelivery+StructureStructure générique des réponses aux services
LogResponse­Timestamp1:1xsd:dateTimeDate et heure de production de la réponse.
Endpoint propertiesRequest­Message­Ref1:1Message­QualifierRéférence de la requête.
SubscriberRef0:1Participant­Code

Identification du souscripteur.

Obligatoire en cas d’abonnement.

Subscription­Ref0:1Subscription­Qualifier

Identification de la souscription.

Obligatoire en cas d’abonnement.

StatusStatus1:1xsd:booleanIndique si la requête a pu être traitée avec succès ou non.
ErrorCondition0:1+StructureSignalement d’erreur (voir le paragraphe sur la gestion des erreurs).
choix-1:1Choix parmi les codes d’erreur
a) ServiceNotAvailableError0:1Le service fonctionnel n’est pas disponible (mais il est toujours capable de donner une réponse).
b) Capability­Not­Supported­Error0:1+ ErrorFonction non supportée.
c) Access­Not­Allowed­Error0:1+ErrorAccès refusé.
d) InvalidDataReferencesError0:1+ErrorLa requête contient des références à des identifiants qui ne sont pas connus.
e) BeyondDataHorizon0:1+ErrorLa période ou la souscription est en dehors de la période couvert par le service.
f) No­Info­For­Topic­Error0:1+ErrorPas d’information pour cette requête.
g) ParametersIgnoredError0:1+ErrorLa 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) UnknownExtensionsError0:1+ErrorLa 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) Allowed­Resource­Usage­Exceeded­Error0:1+ErrorRéponse trop volumineuse.
j) OtherError0:1+ErrorAutre erreur.
Description0:1Error­DescriptionDescription de l’erreur.
ValidUntil0:1xsd:dateTimeDate de validité maximale de la réponse.
Shortest­Possible­Cycle0:1Positive­Duration­TypeIntervalle minimal de mise à jour de la donnée.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2)

Abonnement

Structure générale des abonnements

SubscriptionRequest+StructureStructure générale de requêtes d’abonnement
LogRequest­Timestamp1:1xsd:dateTimeDate de la requête d’abonnement.
End­point propertiesAddress0:1Endpoint­AddressAdresse de destination de la réponse à la demande d’abonnement (accepté ou non).
RequestorRef1:1Participant­CodeIdentifiant du demandeur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR).
Message­Identifier1:1Message­QualifierIdentifiant unique de la requête de souscription (utilisé dans la réponse).
Consumer­Address0:1Endpoint­AddressAdresse (URL) de destination des notifications.
Subscription­Filter­Identifier0:1xsd:NMTOKENIdentification 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).
Pay­loadConcrete service subscription:-1:1choixPlusieurs des structures suivantes peuvent se succéder, mais elles doivent être toutes du même type.
a) Production­Timetable­Subscription­Request0:*+StructureVoir SIRI Partie 3 - Production Timetable.
b) Estimated­Timetable­Subscription­Request0:*+StructureVoir SIRI Partie 3- Estimated Timetable.
d) Stop­Monitoring­Subscription­Request0:*+StructureVoir SIRI Partie 3 - Stop Monitoring.
e) Vehicle­Monitoring­Subscription­Request0:*+StructureVoir SIRI Partie 3 - Vehicle Monitoring.
g) Connection­Monitoring­Subscription­Request0:*+StructureVoir SIRI Part 3 - Connection Monitoring.
h) General­Message­Subscription­Request0:*+StructureVoir SIRI Partie 3 – General Message.
i) FacilityMonitoring­ Subscription­­Request0:*+StructureVoir SIRI Partie 4 - Facility Monitoring.
j) SituationExchange­ Subscription­­Request0:*+StructureVoir SIRI Partie 5 – Situation Exchange.

Réponse aux requêtes d’abonnement

SubscriptionResponse+StructureRéponse à une demande d’abonnement.
LogResponse­Timestamp1:1xsd:dateTimeDate et heure de production de la réponse.
End­point prop­ertiesAddress0:1Endpoint­AddressAdresse pour la gestion ultérieure de l’abonnement.
Responder­Ref1:1Participant­CodeIdentifiant du système répondant (reprendre le code [fournisseur] des identifiants du profil FR).
Request­Message­Ref1:1Message­QualifierIdentifiant unique du message (de cette réponse).
Pay­loadResponse­Status1:*+StructureStatut de la réponse (en erreur et donc refusée, ou Ok).
SubscriptionManagerAddress0:1Endpoint­AddressAdresse du gestionnaire d’abonnement si différent de celle du producteur ou de celle connue par défaut.
Service­Started­Time0:1xsd: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.

anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2)

Qualificateur (état) de réponse

Response­Status+StructureQualificateur des réponses.
LogResponse­Timestamp0:1xsd:dateTimeDate de création de ce statut de réponse.
End­pointRequest­Message­Ref1:1Message­QualifierRéférence de la requête.
Subscriber­Ref1:1Participant­CodeIdentification du souscripteur.
Subscription FilterRef0:1SubscriptionFilterRef

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.

Subscription­Ref1:1Subscription­QualifierIdentification de la souscription.
Pay­loadStatus1:1xsd:booleanIndique si la requête a été traitée normalement ou pas.
Error­Condition0:1+StructureSignalement d’erreur (voir le paragraphe sur la gestion des erreurs).
choix–1:1
  1. Capability­Not­Supported­Error

0:1+ErrorFonction non supportée.
  1. AccessNot­AllowedError

0:1+ErrorAccès refusé.
  1. No­Info­For­TopicError

0:1+ErrorPas d’information pour cette requête.
d) Allowed­Resource­Usage­Exceeded­Error0:1+ErrorRéponse trop volumineuse.
e) OtherError0:1+ErrorAutre erreur.
Description0:1Error­DescriptionDescription de l’erreur.
InfoValidUntil0:1xsd:dateTimeDate de validité maximale de la réponse.
Shortest­Possible­Cycle0:1Positive­Duration­TypeIntervalle minimal de mise à jour de la donnée.

Requête de cloture d’abonnement

TerminateSubscriptionRequest+StructureDemande de fin d’abonnement.
Endpoint propertiesRequest­Timestamp1:1xsd:dateTimeDate de la demande.
End­point prop­ertiesAddress0:1EndpointAddressAdresse du souscripteur.
Requestor­Ref1:1Participant­CodeIdentifiant du souscripteur de la réponse (reprendre le code [fournisseur] des identifiants du profil FR).
MessageIdentifier1:1Message­QualifierIdentifiant unique du message.
Topicchoix–1:1Au choix:
  1. All

0:1EmptyTypeDemande de clôture de tous les abonnements.
b) Subscription­Ref0 :1Subscription­QualifierIdentifiant de l’abonnement à clôturer.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).

Réponse aux demandes de clôture de souscription

TerminateSubscriptionResponse+StructureRéponse aux demandes de fin de souscription.
Endpoint propertiesResponse­Timestamp1:1xsd:dateTimeDatation de la réponse.
Responder­Ref1:1Participant­CodeIdentification du système répondant.
Request­Message­Ref1:1Message­QualifierIdentification de la requête.
PayloadTermination­Response­Status1:*+StructureStatut de la demande de clôture d’abonnement.
Response­Timestamp0:1xsd:dateTimeHeure de réponse (pour l’abonnement ci-dessous).
Subscriber­Ref0:1Participant­CodeIdentifiant du souscripteur.
Subscription­Ref1:1Subscription­QualifierIdentifiant de la souscription.
Status1:1xsd:booleanIndique si la souscription a bien pu être close
Error­Condition0:1+StructureSignale une éventuelle erreur.
choix-1 :1Au choix :
a) Capability­Not­Supported­Error0:1+ErrorFonction non supportée.
b) Unknown­Subscriber­Error0:1+ErrorSouscripteur inconnu.
c) Unknown­Subscription­Error0:1+ErrorSouscription inconnue.
d) OtherError0:1+ErrorAutre erreur.
Description0:1Error­DescriptionDescription de l’erreur.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2).

Notification de clôture de souscription

SubscriptionTerminatedNotification+StructureNotification permettant au producteur de données de signaller l’interruption d’un ou plusieurs abonnement en cours
LogResponse­Timestamp1:1xsd:dateTimeDate et Heure de production de la réponse.
End­pointProducerRef0:1Participant­CodeIdentifiant du producteur de la réponse (reprendre le code [fournisseur] des identifiants du profil).
Response­Message­Identifier1:1Message­QualifierIdentifiant unique du message de réponse.
Request­Message­Ref1:1Message­QualifierIdentifiant de la requête à laquelle on répond.
Sub­scriptionSubscriber­Ref0:1Participant­CodeIdentification du souscripteur.
SubscriptionFilterRef0:1SubscriptionFilterRef

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.

Subscription­Ref1:1Subscription­QualifierIdentification de la souscription.
Error­Condition0:1See belowSignalement d’erreur (voir le paragraphe sur la gestion des erreurs).
Choix-1:1
a) OtherError0:1+ErrorAutre erreur.
b) Description0:1Error­DescriptionDescription de l’erreur.
anyExtensions0:1xsd:anyEmplacement 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+StructureRequête de vérification d’état
LogRequest­Timestamp1:1xsd:dateTimeDate et heure de la requête.
EndpointAddress0:1Endpoint­AddressAdresse (URL) de destination de la requête.
RequestorRef1:1Participant­Code.Identifiant du demandeur.
IdentityMessageIdentifier1:1Message­QualifierIdentifiant de la requête.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2)

Réponse aux requêtes de vérification d’état

CheckStatusResponse+StructureRéponses aux requêtes de vérification d’état.
LogResponse­Timestamp1:1xsd:dateTime:Datation de la réponse.
End­pointProducerRef1:1Participant­CodeIdentification du répondant.
Response­Message­Identifier1:1Message­QualifierIdentifiant unique du message de réponse.
Request­Message­Ref1:1MessageQualifierIdentifiant de la requête à laquelle on répond.
PayloadStatus1:1xsd booleanSignale si le système est bien disponible.
Error­Condition0:1+StructureSignalement d’erreur.
Choix–1:1Au choix :
a) Service­Not­Available­Error0:1+ErrorService indisponible.
c) OtherError0:1+ErrorAutre erreur.
Description0:1Error­DescriptionDescription de l’erreur.
ServiceStarted­Time0:1xsd:date­Time:Dernière date et heure de mise en marche du système.
anyExtensions0:1anyEmplacement pour extension utilisateur (cf 5.4.2.2)

Annexe A

Termes et définitions

AVMSAutomated Vehicle Management System – Système automatisé de gestion de véhicules.
DMZDeMilitarised 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.
FIREWALLPorte 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.
HTMLHyper Text Markup Language - langage de programmation utilisé pour créer des documents hypertexte.
HTTPHyperText 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.
HTTPSHyperText Transfer Protocol Secured – Protocole Web sécurisé.
PMRPersonne à Mobilité Réduite
QUAYZone d’embarquement. Peut être constituée de positions d’embarquement
RERRéseau Express Régional. Le RER est un réseau de transport en commun urbain propre à la région parisienne.
RTCRéseau Téléphonique Commuté. Désigne le réseau téléphonique actuellement en place, utilisant des autocommutateurs pendant l’établissement des communications.
SERVEURProcessus 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é.
SAESystème d’Aide à l’Exploitation
SAEIVSystème d'Aide à l'Exploitation et d’Information Voyageurs
pour véhicules de transport en commun
SIRIService Interface for Realtime Information – Norme de diffusion des données temps réel dans le domaine du transport.
SIVSystème d’Information Voyageurs
SMSShort 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 :
- l'enveloppe qui dessine les contours du message et en décrit le contenu,

- 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.

TRANSMODELNorme 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.

UMLUnify 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.
URLUniform Resource Location - Adresse Internet reconnue par les navigateurs, qui leur permet d’appeler n’importe quelle page ou document.
VPNVirtual 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.

XMLeXtended 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

ProductionTimetable­Request+StructureRequête d’information sur les horaires commandés/théoriques
AttributesVersion1:1VersionStringVersion du service “ ProductionTimetable ”, intégrant le numéro de version de profil (voir 5.9)
Endpoint PropertiesRequest­Timestamp1:1xsd:dateTimeDate d’émission de la requête.
Message­Identifier1:1Message­QualifierNuméro d’identification du message.
Line TopicValidity­Period1:1ClosedDate­Range­StructurePériode pour laquelle on souhaite avoir des informations horaires.
Start1:1xsd:dateTimeDate et heure de début de période.
End1:1xsd:dateTimeDate et heure de fin de période.
Timetable­Version­Ref0:1xsd:stringVersion 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)
Operator­Ref0:*Operator­CodeIdentifie le ou les exploitants pour lesquel on souhaite obtenir des informations*.*
Lines
LineDirection
LineRef0:1LineCodeIdentifie la ligne pour laquelle on souhaite obtenir des informations.
PolicyIncremental­Updates0:1xsd:booleanIndique 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

ProductionTimetable­SubscriptionRequest+StructureRequête pour un abonnement au service SIRI Production Timetable Service.
IdentitySubscriberRef0:1Participant­CodeIdentification du système demandeur (voir SIRI Part 2 Common SubscriptionRequest parameters.)
Subscription­Identifier1:1Subscription­QualifierIdentifiant de l’abonnement pour le système demandeur.
LeaseInitial­Termination­Time1:1xsd:dateTImeDate 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).
RequestProduction­Timetable­Request1:1+StructureVoir ProductionTimetable­Request.

Réponse aux requêtes d’informations sur les horaires commandés/théoriques

Production­Timetable­Delivery+StructureDescription des horaires sur la période
Attributesversion1:1VersionStringNuméro de version du service Production Timetable, intégrant le numéro de version de profil (valeur fixe).
LEADER::1:1xxx­DeliveryVoir paragraphe 2.2.
PayloadDated­Timetable­Version­Frame0:*+StructureVoir DatedTimetableVersionFrame element.

Structure DatedTimetableVersionFrame

DatedTimetableVersionFrame+StructureFournit les courses applicables pour un itinéraire
LogRecorded­AtTime1:1xsd:dateTimeDate et heure auxquelles ces données ont été produites.
LineLineRef1:1LineCodeIdentifiant de la ligne.
DirectionRef1:1Direction­Code

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.

Journ­eysDated­Vehicle­Journey0:*+StructureDescription des horaires de la course.

Structure DatedVehicleJourney

DatedVehicleJourney+StructureDescription de la course
Vehicle Journey Identitychoix-1:1
Dated­Vehicle­Journey­Code0:1Vehicle­Journey­CodeIdentifie la course datée.
Framed-Vehicle-JourneyRef0: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.

ExtraJourney0:1xsd:boolean

Signale qu’il s’agit d’une nouvelle course, ajoutée par rapport aux horaires théoriques.

Valeur par défaut : « false»

Cancellation0:1xsd:boolean

Signale la suppression de la course identifiée.

Valeur par défaut : « false»

Journey Pattern Info:::0:1Journey­Pattern­Info­GroupVoir Journey­Pattern­Info­Group.
Service Info:::0:1Service­Info­GroupVoir ServiceInfo­Group.
Journey InfoVehicle­Journey­Name0:1NLStringNom commercial de la course.
NotesDestination­Display0:1NLStringDestination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local).
Timetable­infoHeadway­Service0:1xsd: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 InfoMonitored0:1xsd: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»

ChildrenDated­Calls1:1+StructureDescription ordonnée des points d’arrêts et heures de passage.
Dated­Call2:*+StructureVoir DatedCall

Structure DatedCall

DatedCall+StructureInformation et heures de passage à l’arrêt
Stop IdentityStopPoint­Ref1:1StopPoint­CodeIl 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.
Order0:1xsd:positive­IntegerNuméro d'ordre de l'arrêt dans la mission.
StopPoint­Name0:1NLString

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 InfoDestination­Display0:1NLStringDestination telle qu'elle est affichée sur la girouette du véhicule à cet arrêt (ou sur l’afficheur local).
ArrivalAimed­Arrival­Time0:1xsd:dateTimeDate et heure d'arrivée théorique (ou commandée)
Arrival­Platform­Name0:1NLStringIdentification ou nom du quai d'arrivée.
Aimed­­QuayName0:1NLStringIndication de la voie d'arrivée (en complément de Platform).
DepartureAimed­Departure­Time0:1xsd:dateTimeDate et heure de départ théorique (ou commandée).
Departure­Platform­Name0:1NLStringIdentification ou nom du quai de départ.
Departure­Boarding­Activity0:1boarding | noBoarding| passthruCaractérisation de l'horaire de départ attendu (ou mesuré si le véhicule est à quai).
HeadwayAimed­Headway­Interval0:1Positive­DurationTypeFréquence de passage théorique (ou commandée).
InterchangeTargeted­Interchange0:*+Structure

Permet de signaler une correspondance programmée à ce point arrêt (possibilité d’attendre une course arrivant).

Voir Structure Targeted­Interchange (cf B.7).

Structure TargetedInterchange


Targeted­Interchange
+StructureDescription d’une correspondance programmée (description de l’arrivant).
IdentityInterchange­Code0:1Inter­change­Code

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 ‘:’)

Distributor­Vehicle­Journey­Ref1:1Dated­Vehicle­Journey­CodeIdentifie la course de l’arrivant
ConnectionDistributor­Connection­Link1:1+StructureDescription du cheminement physique de correspondance.
Connection­Code1:1Connection­Code

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.

Stop­Point­Ref0:1StopPoint­Code

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).

Interchange­Duration0:1Positive­Duration­TypeDurée de la correspondance (temps « normal » de marche à pied).
Frequent­Traveller­Duration0:1Positive­Duration­TypeDurée de la correspondance pour un voyageur habitué.
Occasional­Traveller­Duration0:1Positive­Duration­TypeDurée de la correspondance pour un voyageur lent ou ne connaissant pas la correspondance.
Impaired­Access­Duration0:1Positive­Duration­TypeDurée de la correspondance pour une personne à mobilité réduite.
Interchange PropertiesStaySeated0:1xsd:boolean

« true » signale que la correspondance s’effectue en restant dans le même véhicule.

Valeur par défaut : « false»

Guaranteed0:1xsd:boolean

« true » signale que la correspondance est garantie ou non.

Valeur par défaut : « false»

Interchange TimesMaximum­Wait­Time0:1Positive­Duration­TypeTemps maximum qu’attendra le véhicule au départ si l’amenant est en retard.

Bibliographie

  1. ISO 8601, Data elements and interchange formats – Information interchange – Representation of dates and times
  2. ISO 639/IETF 1766, Tags for the Identification of Languages
  3. ISO/IEC 19501-1:2002, Unified Modelling Language (UML) – Part 1: Specification
  4. Normes nationales, enparticulier NEPTUNE, TransXChange, BISON and VDV 452, et d’autres documents comme NOPTIS
  5. 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.
  6. UIC recommendations and leaflets
  7. XML, Extensible Mark-up Language (XML) 1.0 W3C Recommendation 04 February 2004, available at http://www.w3.org/TR/2004/REC-xml-20040204.
  8. 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
  9. 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
  10. 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