OSDM - Distribution Model
type: Ontology
version IRI: https://w3id.org/mobility/osdm/core/0.1
license: http://creativecommons.org/licenses/by/4.0/
creator: Jhon Toledo (Ontology Engienering Group - Universidad Politécnica de Madrid)
creator: Miguel Angel García (Ontology Engienering Group - Universidad Politécnica de Madrid
creator: Oscar Corcho (Ontology Engineering Group - Universidad Politécnica de Madrid)
date: 2021-08-20
description: Module of the OSDM Ontology focused on Online API. This ontology provides support to the OSDM model. Visit https://github.com/oeg-upm/mobility/ and https://w3id.org/mobility/osdm/core/0.1
rights: Creative Commons Attribution 4.0 International (CC BY 4.0)
comment: Module of the OSDM Ontology focused on online API. This ontology provides support to the OSDM model. https://github.com/oeg-upm/mobility/tree/main/OSDM and https://w3id.org/mobility/osdm/core/0.1
version info: This is the initial version of the module on OSDM online API(V1.2), after considering the specification and examples of OSDM.

identifier
type: AnnotationProperty
type: DatatypeProperty
comment: An unambiguous reference to the resource within a given context.

inScheme
type: ObjectProperty
range: Concept Scheme
definition: Relaciona un recurso, como por ejemplo un concepto, con un esquema de conceptos o taxonomía en el que se incluye. @es
definition: Relates a resource (for example a concept) to a concept scheme in which it is included.

admissions
type: ObjectProperty
domain: Offer
range: Admission
comment: This property sets the relationship between Offer and admission

ancillaries
type: ObjectProperty
domain: Offer
range: Ancillarie
comment: This property sets the relationship between Offer and ancillarie

bookedOffers
type: ObjectProperty
domain: Booking
range: Offer
comment: This property sets the relationship Booking and Offer.

codes
type: ObjectProperty
sub property of: topObjectProperty
domain: StationDetail
range: Class
  intersection of: Concept
  intersection of: Restriction
    has value: Station Codes
    on property: inScheme
comment: The codes that can be used to represent the given station on the system.

conditions
type: ObjectProperty
domain: Fee
range: Condition
comment: This property describes the relation of the sales or after-sales conditions.

confirmedPrice
type: ObjectProperty
domain: Booking
range: Price
comment: This property sets the relationship Booking and Price.

destination
type: ObjectProperty
domain: Trip
range: Stop
comment: A location where the vehicle arrives. This property sets the relationship between Trip and Stop.

details
type: ObjectProperty
domain: Passenger
range: Passenger Details
comment: Information needed at booking step.

direction
type: ObjectProperty
sub property of: coreType
domain: Trip
range: Class
  intersection of: Concept
  intersection of: Restriction
    has value: direction type
    on property: inScheme
comment: Indicates the trip direction

exchangeOperations
type: ObjectProperty
domain: Booking
range: ExchangeOperations

fares
type: ObjectProperty
domain: Offer
range: FareOnline
comment: This property sets the relationship between Offer and fare

feePrice
type: ObjectProperty
domain: Condition
range: Price
comment: This property sets the relationship Condition and Price.

fees
type: ObjectProperty
domain: Offer
range: Fee
comment: This property sets the relationship between Offer and fee

fulfillmentType
type: ObjectProperty
sub property of: coreType
domain: Offer
range: Class
  intersection of: Concept
  intersection of: Restriction
    has value: fulfillment type
    on property: inScheme
definition: Relates a resource (for example a concept) to a concept scheme in which it is included.

fulfillments
type: ObjectProperty
domain: Booking
range: Fulfillment
comment: This property sets the relationship Booking and Fulfillment.

gender
type: ObjectProperty
sub property of: coreType
domain: Passenger
range: Class
  intersection of: Concept
  intersection of: Restriction
    has value: sex
    on property: inScheme

identificationDocument
type: ObjectProperty
domain: Passenger
range: IdentidicationDocument
comment: This property sets the relationship between Passenger and IdentidicationDocument.

location
type: ObjectProperty
domain: Stop
range: Location
comment: This property sets the relationship Stop and Location .

offerParts
type: ObjectProperty
comment: This property sets the relationship Fulfillment and OfferParts.

offerSummary
type: ObjectProperty
domain: Offer
range: OfferSummary
comment: This property sets the relationship between Offer and OfferSummary.

offers
type: ObjectProperty
domain: TripOffer
range: Offer
comment: This property sets the relationship between TripOffer and Offer.
comment: offers

origin
type: ObjectProperty
domain: Trip
range: Stop
comment: location where the vehicle departs. This property sets the relationship between Trip and Stop.

passengers
type: ObjectProperty
domain: TripOffer
range: Passenger
comment: This property sets the relationship between TripOffer and Passenger.

price
type: ObjectProperty
range: Price
comment: Represent costs for services or products.

provisionalPrice
type: ObjectProperty
domain: Booking
range: Price
comment: This property sets the relationship Booking and Price.

realizedBy
type: ObjectProperty
domain: Segment
range: Vehicle
comment: A trip that is realized with the same transport

refundOffers
type: ObjectProperty
domain: Booking
range: RefundOffers

reservations
type: ObjectProperty
domain: Offer
range: Reservation
comment: This property sets the relationship between Offer and reservation

segments
type: ObjectProperty
domain: Trip
range: Segment
comment: A list of segments. A segment represents a property that sets the relationship between Trip and Segment.

stops
type: ObjectProperty
domain: Segment
range: Stop
comment: This property sets the relationship Segment and Stop.

transportMode
type: ObjectProperty
sub property of: coreType
domain: Vehicle
range: Class
  intersection of: Concept
  intersection of: Restriction
    has value: transport-mode-type
    on property: inScheme

trip
type: ObjectProperty
domain: Offer
range: Trip
comment: This property sets the relationship between Offer and Trip

email
type: DatatypeProperty
domain: Passenger Details
range: string
comment: Email address.

phoneNumber
type: DatatypeProperty
domain: Passenger Details
range: string
label: telephone

downloadLink
type: DatatypeProperty
domain: FulfillmentDocument
range: string

firstName
type: DatatypeProperty
domain: Passenger Details
range: string
comment: The first name of a person.

lastName
type: DatatypeProperty
domain: Passenger Details
range: string
comment: The last name of a person.

accommodation
type: DatatypeProperty
domain: OfferSummary
range: string
comment: This property sets the accommodation. example: seat, couchette

accommodationDetails
type: DatatypeProperty
domain: OfferSummary
range: string
comment: Accommodation details. Example: SEAT, COUCHETTE, BERTH or VEHICLE

accuracy
type: DatatypeProperty
domain: GeoCoordinate
range: float
comment: Accuracy of the provided coordinates to be used when comparing coordinates

afterSalesCondition
type: DatatypeProperty
domain: FareOnline
range: boolean
comment: Property that the after sales can be treated independently per person.

amount
type: DatatypeProperty
domain: Price
range: integer
comment: Amount in cents.

appliedThroughTicketTags
type: DatatypeProperty
domain: Offer
range: string
comment: This property shows the list of all throughticket tags that were effectively used in building or booking the offer

arrivalDateTime
type: DatatypeProperty
domain: Stop
range: string
comment: Date and time in the time zone of the station

arrivalTrack
type: DatatypeProperty
domain: Stop
range: string
comment: The info about the arrival-track of the stop. Format depends on operator.

carrierConstraintText
type: DatatypeProperty
domain: Product
range: string

city
type: DatatypeProperty
domain: Address
comment: City

cityOfBirth
type: DatatypeProperty
domain: IdentidicationDocument
range: string

cityOfIssue
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: Place where the document is issued

cityOfResidence
type: DatatypeProperty
domain: IdentidicationDocument
range: string

code
type: DatatypeProperty
domain: Product
range: string
comment: The product code expressed in the provider system (could be a mapping from an even lower-level provider).

comfortClass
type: DatatypeProperty
range: string
comment: This property is mostly used to harmonize choice and representation across multiple carriers."FIRST", "SECOND"

content
type: DatatypeProperty
domain: FulfillmentDocument
range: string
comment: Base64 encoded binary of the actual fulfillment document.

controlNumber
type: DatatypeProperty
domain: Fulfillment
range: integer
comment: Ticket Control Number.

contryOfResidence
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: property according to ISO 3166 2A codes

country
type: DatatypeProperty
range: string
comment: This property use ISO 3166 2A codes to define the country

countryOfBirth
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: Property according to ISO 3166 2A codes

countryOfIssue
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: property according to ISO 3166 2A codes

coveredSegmentIndexes
type: DatatypeProperty
domain: Offer
range: integer
comment: This property indicates which segments are covered by the specific offer

currency
type: DatatypeProperty
domain: Price
range: string
comment: Currency (local currency might be required additionally due to local legislation for two carriers in one country). ISO 4217 currency codes

dateOfBirth
type: DatatypeProperty
domain: Passenger
range: string
comment: date of birth of the passenger

dateOfIssue
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: date of issue

departureDateTime
type: DatatypeProperty
domain: Stop
range: string
comment: Date and time in the time zone of the station

departureTrack
type: DatatypeProperty
domain: Stop
range: string
comment: The info about the departure-track of the stop. Format depends on operator.

downloadExpiry
type: DatatypeProperty
domain: FulfillmentDocument
range: string
comment: Expiration time of the download link, the document will not be available at the given URI after this time.

duration
type: DatatypeProperty
domain: Trip
range: string
comment: Total duration over all segment's (format see https://www.w3.org/TR/xmlschema11-2/#duration)
comment: duration of the segment in ISO 8601 Durations

format
type: DatatypeProperty
domain: FulfillmentDocument
range: string
comment: Physical format of the document provided in the content field in Mime-Type format, e.g. application/pdf, image/jpeg, etc. Must be filled if the "content" field is present.

fulfillmentDocumentType
type: DatatypeProperty
domain: FulfillmentDocument
range: string
comment: example : "BOOKING_RECEIPT", "TICKET", "BOARDING_PASS", "INFORMATION", "VOUCHER"

index
type: DatatypeProperty
domain: Segment
range: string
comment: sequence number of the segment in the ordering of all segments of the trip

isAllocatorFee
type: DatatypeProperty
domain: Product
range: boolean
comment: Indicates whether the fee belongs to the allocator

isReservationRequired
type: DatatypeProperty
domain: Admission
range: boolean
comment: Whether admission required reservation

isReturnProduct
type: DatatypeProperty
domain: Product
range: boolean

isReusable
type: DatatypeProperty
domain: Offer
range: boolean
comment: Indicates whether the offerId can be used in more than one booking.

isTrainBound
type: DatatypeProperty
domain: Product
range: boolean

latitude
type: DatatypeProperty
domain: GeoCoordinate
range: float
comment: Geographic coordinate that specifies the north-south position of a point on the earths surface.

limitOfValidity
type: DatatypeProperty
domain: IdentidicationDocument
range: string

lineNumber
type: DatatypeProperty
domain: Vehicle
range: string
comment: Line number in case the vehicle does not have a number

localCode
type: DatatypeProperty
domain: StationDetail
range: string
comment: Code unique with in the country only

longitude
type: DatatypeProperty
domain: GeoCoordinate
range: float
comment: Geographic coordinate that specifies the east-west position of a point on the earths surface.

medium
type: DatatypeProperty
comment: property from Fulfillment types. RCT2, RCCST and UIC-PDF are official UIC standards.

name
type: DatatypeProperty
comment: ICAO transliteration identical as written in the document

nationality
type: DatatypeProperty
domain: IdentidicationDocument
range: string
comment: Property according ISO 3166 2A codes

postalCode
type: DatatypeProperty
domain: Address
comment: postal code

productCode
type: DatatypeProperty
domain: Fee
range: string
comment: The product code expressed in the provider system

provider booking reference
type: DatatypeProperty
domain: Fee
range: string
comment: The booking reference of the booking

reference
type: DatatypeProperty
domain: Booking
range: string
comment: The unique booking reference in the provider system. Usually refers to an order number or PNR.

requestedInformation
type: DatatypeProperty
domain: Offer
range: string
comment: This property describes the Boolean expression indicating the data that must be set in the data model in order to proceed to the next step of the process.

returnTags
type: DatatypeProperty
domain: Offer
range: string
comment: Identifying sets of compatible offers when booking a return trip involving return-specific fares. All returnTags must be present in the counterpart offer to allow combination If no tag is provided, there is no return constraint on this specific offer.

scale
type: DatatypeProperty
domain: Price
range: integer
comment: Scale of the amount - the number of positions after the comma.

serviceBrand
type: DatatypeProperty
domain: Vehicle
range: string
comment: Service brands identify a type of train. In future version it will be represented with SKOS.

serviceClass
type: DatatypeProperty
range: string
comment: Class of service.This property sets the quality level, finer grained than the comfort class. "BEST", "HIGH", "STANDARD", "BASIC"

serviceConstraintText
type: DatatypeProperty
domain: Product
range: string

status
type: DatatypeProperty
range: string
comment: Booking status. Example. PREBOOKED, CONFIRMED, FULFILLED, CANCELLED, REFUNDED, EXCHANGE_ONGOING, ERROR

street
type: DatatypeProperty
domain: Address
comment: The street name and house number (if applicable)

system
type: DatatypeProperty
domain: GeoCoordinate
range: string
comment: Geo coordinate system indication. default: WGS84 standard system

ticketTimeLimit
type: DatatypeProperty
comment: ticket-time limit

tripKey
type: DatatypeProperty
domain: TripOffer
range: string
comment: This property sets the client reference that could be received in a search with trips in input.

tripTags
type: DatatypeProperty
domain: Offer
range: string
comment: This property describes sets of compatible offers when trying to combine multiple offers covering one single trip. At least one (not all) tripTags must be in common to allow combination If no tag is provided, there is no trip constraint on this specific offer.

validFrom
type: DatatypeProperty
domain: Offer
range: string
comment: Defines the minimum validity period of the trip booked, meaning the period during which it will be possible to travel.

validUntil
type: DatatypeProperty
domain: Offer
range: string
comment: Defines the validity period of the trip booked, meaning the period during which it will be possible to travel

vehicleNumber
type: DatatypeProperty
domain: Vehicle
range: string
comment: Vehicle number

Concept
type: Class
definition: An abstract idea or notion; a unit of thought.

Concept Scheme
type: Class
comment: A concept scheme may be defined to include concepts from different sources.
comment: Thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', and other types of controlled vocabulary are all examples of concept schemes. Concept schemes are also embedded in glossaries and terminologies.
definition: A set of concepts, optionally including statements about semantic relationships between those concepts.

Address
type: Class
subclass of: Location
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: city
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: country
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: postalCode
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: street
comment: Used to encode an address using the standard street address attributes.

Admission
type: Class
subclass of: OfferParts
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: isReservationRequired
comment: Admission offer parts represent a travel right, or the entitlement to travel onboard a train between the given origin and destination, following the given route.It does not include a seat reservation.
comment: Represent a travel right, or the entitlement to travel onboard a train between the given origin and destination, following the given route, without a seat reservation

Ancillarie
type: Class
subclass of: OfferParts
comment: An extra service like meal or WIFI
comment: Ancillaries are used to represent non-transport products associated with the transportation request submitted. It could be onboard services such as a WIFI connection or a meal, or services associated with one of the stops, or origin/destination, like a parking spot or lounge access.

Booking
type: Class
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: fulfillment type
      on property: inScheme
  on property: fulfillmentType
subclass of: Restriction
  on class: Offer
  max qualified cardinality: 1
  on property: bookedOffers
subclass of: Restriction
  on class: Price
  max qualified cardinality: 1
  on property: confirmedPrice
subclass of: Restriction
  on class: ExchangeOperations
  max qualified cardinality: 1
  on property: exchangeOperations
subclass of: Restriction
  on class: Fulfillment
  max qualified cardinality: 1
  on property: fulfillments
subclass of: Restriction
  on class: Passenger
  max qualified cardinality: 1
  on property: passengers
subclass of: Restriction
  on class: Price
  max qualified cardinality: 1
  on property: provisionalPrice
subclass of: Restriction
  on class: RefundOffers
  max qualified cardinality: 1
  on property: refundOffers
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: reference
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: requestedInformation
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: status
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: ticketTimeLimit
comment: The booking represents the local booking for the offers that have been selected. It contains a set of sub-resources, most of which were encountered in the offer stage.

Condition
type: Class
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: validFrom
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: validUntil
comment: Describes sales and after sales conditions applicable to the product. For a product to be refundable or exchangeable, at least one refund or exchange (respectively) condition must be present.

ConnectionPoint
type: Class
subclass of: Location
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: Station Codes
      on property: inScheme
  on property: codes
comment: Connection point connecting two fare regimes. Providing the UIC code for the station is mandatory.

ExchangeOperations
type: Class
comment: An exchange operations represent an ongoing exchange.

FareOnline
type: Class
subclass of: Restriction
  some values from: Price
  on property: price
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: afterSalesCondition
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: serviceClass
comment: TODO: check if it's the same with fare of Transmodel

Fee
type: Class
subclass of: OfferParts
subclass of: Restriction
  some values from: string
  on property: productCode
subclass of: Restriction
  some values from: string
  on property: provider booking reference
comment: Fees are used to represent additional costs for services or products. Offer parts of type “fee” can be applied to the booking process (e.g. a service fee), the trip (e.g. a reservation fee which is applied to all reservations in trains running in the same direction, namely outward or inward travel) or other offer parts.

Fulfillment
type: Class
subclass of: Restriction
  some values from: Price
  on property: price
subclass of: Restriction
  on class: OfferParts
  max qualified cardinality: 1
  on property: offerParts
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: status
comment: fulfillment representing an offer part

FulfillmentDocument
type: Class
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: downloadLink
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: content
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: downloadExpiry
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: format
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: fulfillmentDocumentType
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: medium
comment: Class for document fulfillment.

GeoCoordinate
type: Class
subclass of: Location
subclass of: Restriction
  on data range: float
  max qualified cardinality: 1
  on property: accuracy
subclass of: Restriction
  on data range: float
  max qualified cardinality: 1
  on property: latitude
subclass of: Restriction
  on data range: float
  max qualified cardinality: 1
  on property: longitude
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: system
comment: Used to provide any geo-encoded location, regardless of environment, using longitude and latitude coordinates.

IdentidicationDocument
type: Class
subclass of: Restriction
  some values from: string
  on property: cityOfBirth
subclass of: Restriction
  some values from: string
  on property: cityOfIssue
subclass of: Restriction
  some values from: string
  on property: cityOfResidence
subclass of: Restriction
  some values from: string
  on property: contryOfResidence
subclass of: Restriction
  some values from: string
  on property: countryOfBirth
subclass of: Restriction
  some values from: string
  on property: countryOfIssue
subclass of: Restriction
  some values from: string
  on property: dateOfIssue
subclass of: Restriction
  some values from: string
  on property: limitOfValidity
subclass of: Restriction
  some values from: string
  on property: nationality
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: identifier
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: name
comment: Travel document data to be exchanged for border control.

Location
type: Class
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: identifier
comment: Representing a specific location in a trip: departure, origin, intermediate stop or other. A location uniquely identifies a place in space. A location can be of type station, point-of-interest, address or geo-coordinate.

Offer
type: Class
subclass of: Restriction
  all values from: Admission
  on property: admissions
subclass of: Restriction
  all values from: Ancillarie
  on property: ancillaries
subclass of: Restriction
  all values from: FareOnline
  on property: fares
subclass of: Restriction
  all values from: Fee
  on property: fees
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: fulfillment type
      on property: inScheme
  on property: fulfillmentType
subclass of: Restriction
  all values from: OfferSummary
  on property: offerSummary
subclass of: Restriction
  all values from: Reservation
  on property: reservations
subclass of: Restriction
  all values from: Trip
  on property: trip
subclass of: Restriction
  some values from: string
  on property: appliedThroughTicketTags
subclass of: Restriction
  some values from: integer
  on property: coveredSegmentIndexes
subclass of: Restriction
  some values from: string
  on property: requestedInformation
subclass of: Restriction
  some values from: string
  on property: returnTags
subclass of: Restriction
  some values from: string
  on property: tripTags
subclass of: Restriction
  some values from: string
  on property: validFrom
subclass of: Restriction
  some values from: string
  on property: validUntil
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: isReusable
comment: Representing bookable elements that covers exactly one a specific trip

OfferParts
type: Class
comment: Representing bookable elements that covers exactly one a specific trip (or the requested section of a trip in case of allocator request to an nTM Provider)

OfferSummary
type: Class
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: accommodation
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: accommodationDetails
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: comfortClass
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: serviceClass
comment: The offer summary indicates the major service class, level or flexibility.

POI
type: Class
subclass of: Location
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: Station Codes
      on property: inScheme
  on property: codes
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: country
comment: POI (for point of Interest) represents a location that is not a train station but still relevant to the description of the trip. It could be a public transport stop, an exhibition, an event hall, a shopping mall etc.

Passenger
type: Class
subclass of: Restriction
  on class: Concept
  max qualified cardinality: 1
  on property: gender
subclass of: Restriction
  on class: Offer
  max qualified cardinality: 1
  on property: identificationDocument
subclass of: Restriction
  some values from: string
  on property: dateOfBirth
comment: A passenger is the person travailing on a vehicle.

Passenger Details
type: Class
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: email
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: phoneNumber
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: firstName
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: lastName
comment: Passenger details providing personal information only information required in the booking.

Price
type: Class
subclass of: Restriction
  on data range: integer
  max qualified cardinality: 1
  on property: amount
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: currency
subclass of: Restriction
  on data range: integer
  max qualified cardinality: 1
  on property: scale

Product
type: Class
subclass of: Restriction
  on class: Price
  max qualified cardinality: 1
  on property: feePrice
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: code
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: comfortClass
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: isAllocatorFee
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: isReturnProduct
subclass of: Restriction
  on data range: boolean
  max qualified cardinality: 1
  on property: isTrainBound
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: serviceClass

RefundOffers
type: Class
comment: Refund offers represent a provisional refund request that is made on all or a subset of the fulfillments contained in a booking.

Reservation
type: Class
subclass of: OfferParts
comment: Reservation includes the reference to the in the initial offer. The offer needs to be updated with the selected places before the confirmation which creates the reservation details including the reserved places.
comment: Reservation offer parts represent a seat (or other accommodation) reservation on the transportation. In contrast with admissions, a reservation is in essence bound to a specific train, although it normally does not include the entitlement to board the train. Travellers therefore typically need an a associated admission offer part or other entitlement (such as a pass) in order to actually travel.

Segment
type: Class
subclass of: Restriction
  all values from: Stop
  on property: stops
subclass of: Restriction
  on class: Stop
  max qualified cardinality: 1
  on property: destination
subclass of: Restriction
  on class: Stop
  max qualified cardinality: 1
  on property: origin
subclass of: Restriction
  on class: Vehicle
  max qualified cardinality: 1
  on property: realizedBy
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: duration
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: index
comment: A segment represents a subsection of a trip that is realized with the same transport vehicle. A segment has an origin, a destination and duration.

StationDetail
type: Class
subclass of: Location
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: Station Codes
      on property: inScheme
  on property: codes
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: country
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: localCode
comment: Details of a station. In some countries stations have multiple names depending on the countries local languages.

Stop
type: Class
subclass of: Restriction
  on class: Location
  max qualified cardinality: 1
  on property: location
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: arrivalDateTime
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: arrivalTrack
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: departureDateTime
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: departureTrack
comment: Represents a location or station. Either a departure, arrival or intermediate stop along a segment of a trip.

Trip
type: Class
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: direction type
      on property: inScheme
  on property: direction
subclass of: Restriction
  on class: Segment
  min qualified cardinality: 1
  on property: segments
subclass of: Restriction
  on class: Stop
  max qualified cardinality: 1
  on property: destination
subclass of: Restriction
  on class: Stop
  max qualified cardinality: 1
  on property: origin
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: identifier
comment: Trips represent the concrete realization of a trip going from departure station to destination station. A trip is composed of one or more segments.

TripOffer
type: Class
subclass of: Restriction
  all values from: Passenger
  on property: passengers
subclass of: Restriction
  on class: Offer
  min qualified cardinality: 1
  on property: offers
comment: Grouping all the offers relating to one same trip. Indeed, in most cases the Allocator provider will propose several offers of different comfort and flexibility levels.

Vehicle
type: Class
subclass of: Restriction
  all values from: Class
    intersection of: Concept
    intersection of: Restriction
      has value: transport-mode-type
      on property: inScheme
  on property: transportMode
subclass of: Restriction
  on data range: string
  qualified cardinality: 1
  on property: lineNumber
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: serviceBrand
subclass of: Restriction
  on data range: string
  max qualified cardinality: 1
  on property: vehicleNumber
comment: A vehicle is defined by a number or line and a service brand.

sex
type: NamedIndividual
type: Concept Scheme
comment: This code list provides the gender.

direction type
type: NamedIndividual
type: Concept Scheme

fulfillment type
type: NamedIndividual
type: Concept Scheme
comment: Type of fulfillment of a Offer : ETICKET, CIT_PAPER, PASS_CHIP or PASS_REFERENCE.

location type
type: NamedIndividual
type: Concept Scheme
comment: Locations are resources representing a specific location in a trip: departure, origin, intermediate stop or other. They can be of different types: -Station - Address -POI -GeoCoordinate -ConnectionPoint

Station Codes
type: NamedIndividual
type: Concept Scheme

transport-mode-type
type: NamedIndividual
type: Concept Scheme