Rail Topology Ontology
type: Ontology
version IRI: v1.0#
imports: http://standards.iso.org/iso/15926/part14/1.0
contributor: Gottfried Schenner
created: 2020-11-16
creator: Stefan Bischof <bischof.stefan@siemens.com>
description: The Rail Topology Ontology models foundational rail topology concepts..
license: Mozilla Public License, Version 2.0
modified: 2021-04-20
status: Published
preferred namespace prefix: topo
version info: v1.0

longname
type: AnnotationProperty
definition: Longer name of a resource
sub property of: comment
range: Literal
domain: NamedResource

name
type: AnnotationProperty
definition: short name of a resource
sub property of: label
range: Literal
domain: NamedResource

ApplicationDirection
type: Datatype
equivalent class: Datatype
  one of: both
  one of: normal
  one of: reverse

DescriptionLevel
type: Datatype
definition: recommended, predefined description levels: "macro", "meso" and "micro"
equivalent class: string

LrsMethod
type: Datatype
equivalent class: Datatype
  one of: absolute
  one of: interpolation
  one of: relative

Navigability
type: Datatype
equivalent class: Datatype
  one of: AB
  one of: BA
  one of: Both
  one of: None

Orientation
type: Datatype
equivalent class: Datatype
  one of: -1
  one of: 1

Usage
type: Datatype
equivalent class: Datatype
  one of: 0
  one of: 1

anchor
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: LinearPositioningSystem
range: LinearAnchorPoint

associatedElement
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: LinearLocation
range: OrderedAssociatedNetElement

associatedNetElement
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: AreaLocation
range: AssociatedNetElement

associatedPositioningSystem
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: PositioningNetElement
range: AssociatedPositioningSystem

coordinate
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Class
  union of: IntrinsicCoordinate
  union of: LinearLocationCoordinate
  union of: SpotLocationCoordinate
range: PositioningSystemCoordinate

element
type: ObjectProperty
inverse of: relation
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Relation
range: NetElement
term status: unstable
definition: superproperty of [elementA](#elementA) and [elementB](#elementB) to infer inverse [relation](#relation)

elementA
type: ObjectProperty
sub property of: element
type: AsymmetricProperty
type: IrreflexiveProperty
domain: PositionedRelation
range: PositioningNetElement

elementB
type: ObjectProperty
sub property of: element
type: AsymmetricProperty
type: IrreflexiveProperty
domain: PositionedRelation
range: PositioningNetElement

elementCollection
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: CompositionNetElement
range: ElementPartCollection

elementPart
type: ObjectProperty
sub property of: hasFunctionalPart
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Class
  union of: OrderedCollection
  union of: UnorderedCollection
range: NetElement

elementPartList
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: OrderedCollection
range: List

end
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: AssociatedNetElementCoordinate
range: PositioningSystemCoordinate

intrinsicCoordinate
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: AssociatedPositioningSystem
range: IntrinsicCoordinate

level
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Network
range: LevelNetwork

location
type: ObjectProperty
type: InverseFunctionalProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: LocatedNetEntity
range: EntityLocation

netElement
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Class
  union of: AssociatedNetElement
  union of: SpotLocation
range: PositioningNetElement

networkResource
type: ObjectProperty
sub property of: hasFunctionalPart
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Class
  union of: LevelNetwork
  union of: Network
range: NetworkResource

positioningSystem
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: Class
  union of: AssociatedPositioningSystem
  union of: PositioningSystemCoordinate
range: PositioningSystem
definition: should be PropertyChain "intrinsicCoordinate o coordinate o positioningSystem"

reaches
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: IntrinsicCoordinate
range: IntrinsicCoordinate
term status: testing
definition: Asserts that one end of a <#LinearElement> given as subject <#IntrinsicCoordinate> can reach the object <#IntrinsicCoordinate> and its corresponding <#LinearElement> without change of direction

relation
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: NetElement
range: Relation

start
type: ObjectProperty
type: AsymmetricProperty
type: IrreflexiveProperty
domain: AssociatedNetElementCoordinate
range: PositioningSystemCoordinate

anchorName
type: DatatypeProperty
type: FunctionalProperty
domain: LinearAnchorPoint
range: Literal
definition: Name of the “LinearAnchorPoint” instance which is unique within the given "LinearPositioningSystem"

applicationDirection
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: LinearLocation
  union of: SpotLocation
range: ApplicationDirection
definition: if `normal`: the located object is valid in the direction of the LinearLocation if `reverse`: the located object is valid in the reverse direction of LinearLocation if `both`: the located object is valid in both directions

crsDefininition
type: DatatypeProperty
type: FunctionalProperty
domain: GeometricPositioningSystem
range: Literal
definition: coordinate reference system

descriptionLevel
type: DatatypeProperty
type: FunctionalProperty
domain: LevelNetwork
range: DescriptionLevel
definition: Name of the description level, recommended values: `macro`, `meso` and `micro`.

endMeasure
type: DatatypeProperty
type: FunctionalProperty
domain: LinearPositioningSystem
range: double
definition: Value for measurement at the end of the "LinearPositioningSystem"

id
type: DatatypeProperty
type: FunctionalProperty
domain: BaseObject
range: Literal
definition: unique identifier

intrinsicCoord
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: IntrinsicCoordinate
  union of: SpotLocationIntrinsic
range: double
definition: Location in reference to the chosen NetElement, given as value in the interval from 0 to 1.

intrinsicCoordBegin
type: DatatypeProperty
type: FunctionalProperty
domain: AssociatedNetElementIntrinsic
range: double
definition: Start location of the "NetEntity" instance in relation to the PositioningNetElement" which is used for positioning within the network.

intrinsicCoordEnd
type: DatatypeProperty
type: FunctionalProperty
domain: AssociatedNetElementIntrinsic
range: double
definition: End location of the "NetEntity" instance in relation to the "PositioningNetElement" which is used for positioning within the network.

keepsOrientation
type: DatatypeProperty
type: FunctionalProperty
domain: AssociatedNetElement
range: boolean
definition: child `LinearElement` keeps same Orientation as parent `LinearElement`. `false`: Orientation is not relevant, `true`: Orientation is relevant

lateralOffset
type: DatatypeProperty
type: FunctionalProperty
domain: LinearCoordinate
range: double
definition: distance perpendicular to the "line of reference"

linearReferencingMethod
type: DatatypeProperty
type: FunctionalProperty
domain: LinearPositioningSystem
range: LrsMethod
definition: Method for linear referencing, `absolute`, `relative` or `interpolation`.

measure
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: LinearAnchorPoint
  union of: LinearCoordinate
range: double
definition: For LinearCoordinate: location at the "line of reference" (possibly adjusted to local anomalies using "LinearAnchorPosition") For LinearAnchorPoint: Measure of the Anchor Point within the given“LinearPositioningSystem”

measureToNext
type: DatatypeProperty
type: FunctionalProperty
domain: LinearAnchorPoint
range: double
definition: Basis for modified interpolation of location in the interval up to the next “LinearAnchorPoint” of the given "LinearPositioningSystem”.

navigability
type: DatatypeProperty
type: FunctionalProperty
domain: PositionedRelation
range: Navigability
definition: if "AB" it is possible to move a train from NetElement "A" to NetElement "B". It is not possible to move it from NetElement B to NetElement A If "BA" it is possible to move a train from NetElement "B" to NetElement "A". It is not possible to move it from NetElement A to NetElement B If "Both" it is possible to move a train from "A" to "B" as well as from "B" to "A". If "None" it is not possible to move a train across this "Relation" in any direction.

positionOnA
type: DatatypeProperty
type: FunctionalProperty
domain: PositionedRelation
range: Usage
definition: if "0" then the "Relation" is using the start of NetElement A if "1" then the "Relation" is using the end of NetElement A

positionOnB
type: DatatypeProperty
type: FunctionalProperty
domain: PositionedRelation
range: Usage
definition: if "0" then the "Relation" is using the start of NetElement B if "1" then the "Relation" is using the end of NetElement B

sequence
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: OrderedAssociatedNetElement
  union of: OrderedCollection
range: nonNegativeInteger
definition: Sequence of the child element within the ordered collection

startMeasure
type: DatatypeProperty
type: FunctionalProperty
domain: LinearPositioningSystem
range: double
definition: Value for measurement at the beginning of the "LinearPositioningSystem"

unit
type: DatatypeProperty
type: FunctionalProperty
domain: LinearPositioningSystem
range: Literal
definition: unit for measurement

validFrom
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: AssociatedPositioningSystem
  union of: NetworkResource
  union of: PositioningSystem
range: dateTime
definition: Point in time where the object is available for usage for train operations (if empty, then the object is valid till the [validTo](#validTo) date).

validTo
type: DatatypeProperty
type: FunctionalProperty
domain: Class
  union of: AssociatedPositioningSystem
  union of: NetworkResource
  union of: PositioningSystem
range: dateTime
definition: Point in time where the object is no longer available for functional usage (if empty, then the object is valid since the [validFrom](#validFrom) date).

verticalOffset
type: DatatypeProperty
type: FunctionalProperty
domain: LinearCoordinate
range: double
definition: height above the "line of reference" at the position defined by "measure"

x
type: DatatypeProperty
type: FunctionalProperty
domain: GeometricCoordinate
range: double
definition: x value of cartesian coordinate, longitude of spherical coordinate

y
type: DatatypeProperty
type: FunctionalProperty
domain: GeometricCoordinate
range: double
definition: y value of cartesian coordinate, latitude of spherical coordinate

z
type: DatatypeProperty
type: FunctionalProperty
domain: GeometricCoordinate
range: double
definition: z value of cartesian coordinate, altitude of spherical coordinate

AreaLocation
type: Class
subclass of: RegionInSpace
subclass of: EntityLocation
subclass of: Restriction
  on property: associatedNetElement
  some values from: AssociatedNetElement
definition: Set of "AssociatedNetElement" instances which together represent an area of interest. Each “AssociatedNetElement” instance contains attributes which designate the extent of the related “PositioningNetElement” instance using intrinsic coordinates.

AssociatedNetElement
type: Class
subclass of: Role
subclass of: Restriction
  on property: netElement
  some values from: PositioningNetElement
subclass of: Restriction
  on property: netElement
  max qualified cardinality: 1
  on class: PositioningNetElement
definition: The class "AssociatedNetElement" defines topological structures and location information in relation relation between one "NetElement" instance and location information for "NetEntity" instances.

AssociatedNetElementCoordinate
type: Class
subclass of: AssociatedNetElement
subclass of: Restriction
  on property: end
  some values from: PositioningSystemCoordinate
subclass of: Restriction
  on property: start
  some values from: PositioningSystemCoordinate
subclass of: Restriction
  on property: end
  max qualified cardinality: 1
  on class: PositioningSystemCoordinate
subclass of: Restriction
  on property: start
  max qualified cardinality: 1
  on class: PositioningSystemCoordinate
definition: Locates a NetEntity on a NetElement using a pair of positioning system coordinates.

AssociatedNetElementIntrinsic
type: Class
subclass of: AssociatedNetElement
definition: Locates a NetEntity on a NetElement using a pair of intrinsic coordinates.

AssociatedPositioningSystem
type: Class
subclass of: InformationObject
subclass of: BaseObject
subclass of: Restriction
  on property: intrinsicCoordinate
  some values from: IntrinsicCoordinate
subclass of: Restriction
  on property: positioningSystem
  some values from: PositioningSystem
subclass of: Restriction
  on property: positioningSystem
  max qualified cardinality: 1
  on class: PositioningSystem
definition: The class "AssociatedPositioningSystem" defines the relation between a "PositioningNetElement" instance and a "PositioningSystem" instance. The associated set of “IntrinsicCoordinate” together with the related “PositioningSystemCoordinate” instances define the translation parameters between “IntrinsicCoordinate” based locations, and locations based on external coordinates (“LinearLocationCoordinate” or “SpotLocationCoordinate”) using “LinearPositioningSystem” or “GeometricPositioningSystem” as a coordinate system.

BaseObject
type: Class
subclass of: Object
definition: base class

CompositionNetElement
type: Class
subclass of: NetElement
definition: A topological element that aggregates some other topological element from another level (e.g. a macro element aggregates micro elements).

ElementPartCollection
type: Class
subclass of: FunctionalObject
subclass of: BaseObject
definition: Collection of Net elements to be aggregated into the higher level NetElement (Generic class).

EntityLocation
type: Class
subclass of: Location
subclass of: BaseObject
definition: Topological and positional location information for "NetEntity" instances.

GeometricCoordinate
type: Class
subclass of: PositioningSystemCoordinate
subclass of: Restriction
  on property: positioningSystem
  all values from: GeometricPositioningSystem
disjoint with: LinearCoordinate
definition: One coordinate using a "GeometricPositioningSystem" as reference system. Depending on the properties of the coordinate system used, a coordinate consists of cartesian or spherical values. In case of 2D coordinate systems, the attribute z is undefined.

GeometricPositioningSystem
type: Class
subclass of: PositioningSystem
disjoint with: LinearPositioningSystem
definition: Schematic, geographic or geodetic coordinate reference system to position instances of [NetElement](#NetElement) or [NetEntity](#NetEntity). "GeometricPositioningSystem" instances are used to support the transformation between intrinsic locations and geometric coordinates.

IntrinsicCoordinate
type: Class
subclass of: InformationObject
subclass of: BaseObject
definition: Coordinate which is used to specify locations in reference to "NetElement" instances. An intrinsic coordinate may have an arbitrary real number in interval [0,1] of associated “PositioningSystemCoordinate” instances. 0 and 1 correspond to the extremities of the element.

LevelNetwork
type: Class
subclass of: System
subclass of: BaseObject
subclass of: Restriction
  on property: descriptionLevel
  some values from: DescriptionLevel
subclass of: Restriction
  on property: descriptionLevel
  max qualified cardinality: 1
  on data range: DescriptionLevel
definition: A consistent "view" of a Network at a certain level of granularity. An instance of this class therefore includes all resources that are required to define the corresponding level (e.g. micro/track, or macro/line).

LinearAnchorPoint
type: Class
subclass of: PointInSpace
subclass of: BaseObject
definition: Ordered set of named points within a "LinearPositioningSystem", which are used to transform between LRS based locations suitable for field work and locations using intrinsic coordinates. Each point contains an LRS measure and the distance to next “LinearAnchorPoint” instance. This information allows the mapping of LRS locations to intrinsic locations.

LinearCoordinate
type: Class
subclass of: PositioningSystemCoordinate
subclass of: Restriction
  on property: positioningSystem
  all values from: LinearPositioningSystem
definition: Location in reference to a given "LinearPositioningSystem".

LinearElement
type: Class
subclass of: PositioningNetElement
disjoint with: NonLinearElement
definition: One-dimensional "PositioningNetElement" with a start (intrinsic coordinate 0.0) and an end (intrinsic coordinate 1.0).

LinearLocation
type: Class
subclass of: RegionInSpace
subclass of: EntityLocation
subclass of: Restriction
  on property: associatedElement
  some values from: OrderedAssociatedNetElement
subclass of: Restriction
  on property: applicationDirection
  some values from: ApplicationDirection
subclass of: Restriction
  on property: applicationDirection
  max qualified cardinality: 1
  on data range: ApplicationDirection
definition: Location information with a startpoint and an endpoint for "LocatedNetEntity" instances in reference to one or more "PositioningNetElement" instances. The set of associated "PositioningNetElement" instances is ordered.

LinearLocationCoordinate
type: Class
subclass of: LinearLocation
subclass of: Restriction
  on property: coordinate
  some values from: PositioningSystemCoordinate
definition: Relation between a "LinearLocation" and "PositioningSystemCoordinate" instances.

LinearPositioningSystem
type: Class
subclass of: PositioningSystem
subclass of: Restriction
  on property: linearReferencingMethod
  some values from: LrsMethod
subclass of: Restriction
  on property: linearReferencingMethod
  max qualified cardinality: 1
  on data range: LrsMethod
definition: A "PositioningSystem" where a "line of reference" together with a single number allows a location within a railway network to be defined. In railway business a “line of reference” is very often represented with a line number or a track number together with a start mileage and an end mileage.

LocatedNetEntity
type: Class
subclass of: NetEntity
subclass of: Restriction
  on property: location
  some values from: EntityLocation
definition: The class “LocatedNetEntity” is a parent class for information that can definitely be localized, which is the case of most infrastructure-related objects. Note: this class has been introduced for semantic clarification, as one may expect “UnlocatedNetEntitites” to also be introduced in the future. Possible derived classes would be “StructureNetEntity”, “SignallingNetEntity”, “DressingNetEntity”, etc. The RailTopoModel user may create such classes, according to use cases. Further class definitions, resulting from common use cases, may be added to the present Standard in the future. "LocatedNetEntity" is a generic docking station for all relevant domain information which can be located in the context of the network in question:

NamedResource
type: Class
subclass of: BaseObject
definition: class for named resources, e.g., NetworkResources, Networks, PositioningSystems

NetElement
type: Class
subclass of: NetworkResource
subclass of: Restriction
  on property: relation
  some values from: Relation
definition: A base member of topology in a connexity graph of a network (at any level).

NetEntity
type: Class
subclass of: InanimatePhysicalObject
subclass of: NetworkResource
definition: "NetEntity" is a generic parent class for all information that can be associated with the network considered. Information may be, for instance: tunnels, signals, level crossings, track circuits, speed limits, etc.

Network
type: Class
subclass of: System
subclass of: NamedResource
subclass of: Restriction
  on property: level
  some values from: LevelNetwork
definition: The network being considered. It includes all resources that compose it (all Levels included), inter alia the topological, structural and positional properties exhibited by any railway network.

NetworkResource
type: Class
subclass of: FunctionalObject
subclass of: NamedResource
definition: Every object of the network is qualified as a resource.

NonLinearElement
type: Class
subclass of: PositioningNetElement
definition: "PositioningNetElement" without any extenstion, a spot or point.

OrderedAssociatedNetElement
type: Class
subclass of: AssociatedNetElement
definition: Ordered sequences of “AssociatedNetElement” instances which together describe the complete structure of a “LinearLocation” instance.

OrderedCollection
type: Class
subclass of: ElementPartCollection
subclass of: Restriction
  on property: elementPart
  some values from: NetElement
disjoint with: UnorderedCollection
definition: Collection of ordered NetElements

PositionedRelation
type: Class
subclass of: Relation
subclass of: Restriction
  on property: elementA
  some values from: PositioningNetElement
subclass of: Restriction
  on property: elementB
  some values from: PositioningNetElement
subclass of: Restriction
  on property: elementA
  max qualified cardinality: 1
  on class: PositioningNetElement
subclass of: Restriction
  on property: elementB
  max qualified cardinality: 1
  on class: PositioningNetElement
subclass of: Restriction
  on property: navigability
  some values from: Navigability
subclass of: Restriction
  on property: positionOnA
  some values from: Usage
subclass of: Restriction
  on property: positionOnB
  some values from: Usage
subclass of: Restriction
  on property: navigability
  max qualified cardinality: 1
  on data range: Navigability
subclass of: Restriction
  on property: positionOnA
  max qualified cardinality: 1
  on data range: Usage
subclass of: Restriction
  on property: positionOnB
  max qualified cardinality: 1
  on data range: Usage
definition: Oriented relation between exactly two PositioningNetElements.

PositioningNetElement
type: Class
subclass of: CompositionNetElement
subclass of: Restriction
  on property: associatedPositioningSystem
  some values from: AssociatedPositioningSystem
definition: NetElement requiring at least one Positioning System, with orientation (carried by IntrinsicCoordinate).

PositioningSystem
type: Class
subclass of: InformationObject
subclass of: NamedResource
definition: generic concept of a positioning system.

PositioningSystemCoordinate
type: Class
subclass of: InformationObject
subclass of: Restriction
  on property: positioningSystem
  some values from: PositioningSystem
subclass of: Restriction
  on property: positioningSystem
  max qualified cardinality: 1
  on class: PositioningSystem
definition: Generic concept of a coordinate in a positioning system that is used to specify locations for "NetEntity", “PositioningNetElement”, and all other objects of the network. These coordinates are either expressed as “GeometricCoordinate”, or “LinearCoordinate”, or any future type of coordinate.

Relation
type: Class
subclass of: NetworkResource
definition: Connexity relation between two NetElements in the connexity graph of the network.

SpotLocation
type: Class
subclass of: PointInSpace
subclass of: EntityLocation
subclass of: Restriction
  on property: applicationDirection
  some values from: ApplicationDirection
subclass of: Restriction
  on property: applicationDirection
  max qualified cardinality: 1
  on data range: ApplicationDirection
definition: Point location information for "LocatedNetEntity" instances in reference to one "PositioningNetElement" instance.

SpotLocationCoordinate
type: Class
subclass of: SpotLocation
subclass of: Restriction
  on property: coordinate
  some values from: PositioningSystemCoordinate
subclass of: Restriction
  on property: coordinate
  max qualified cardinality: 1
  on class: PositioningSystemCoordinate
disjoint with: SpotLocationIntrinsic
definition: The class "SpotLocationCoordinate" defines the relation between a "SpotLocation" and "PositioningSystemCoordinate".

SpotLocationIntrinsic
type: Class
subclass of: SpotLocation
definition: Additional Information in respect of intrinsic positioning for a "SpotLocation" instance.

UnorderedCollection
type: Class
subclass of: ElementPartCollection
subclass of: Restriction
  on property: elementPart
  some values from: NetElement
definition: Collection of unordered NetElements