PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX topo: <https://w3id.org/rail/topo#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

topo:GeometricCoordinate a rdfs:Class ;
  rdfs:label "GeometricCoordinate" ;
  rdfs:comment "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." ;
  rdfs:subClassOf topo:PositioningSystemCoordinate .

topo:x a rdf:Property ;
  rdfs:label "x" ;
  rdfs:comment "x value of cartesian coordinate, longitude of spherical coordinate"@en ;
  rdfs:domain topo:GeometricCoordinate ;
  rdfs:range xsd:double .

topo:y a rdf:Property ;
  rdfs:label "y" ;
  rdfs:comment "y value of cartesian coordinate, latitude of spherical coordinate"@en ;
  rdfs:domain topo:GeometricCoordinate ;
  rdfs:range xsd:double .

topo:z a rdf:Property ;
  rdfs:label "z" ;
  rdfs:comment "z value of cartesian coordinate, altitude of spherical coordinate"@en ;
  rdfs:domain topo:GeometricCoordinate ;
  rdfs:range xsd:double .

topo:positioningSystem a rdf:Property ;
  rdfs:label "positioningSystem" ;
  rdfs:comment "should be PropertyChain \"intrinsicCoordinate o coordinate o positioningSystem\"" ;
  rdfs:range topo:GeometricPositioningSystem , topo:PositioningSystem , topo:LinearPositioningSystem .

<http://standards.iso.org/iso/15926/part14/FunctionalObject> a rdfs:Class .

topo:LocatedNetEntity a rdfs:Class ;
  rdfs:label "LocatedNetEntity" ;
  rdfs:comment """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:""" ;
  rdfs:subClassOf topo:NetEntity .

topo:name a rdf:Property ;
  rdfs:label "name" ;
  rdfs:comment "short name of a resource" ;
  rdfs:domain topo:NamedResource ;
  rdfs:range xsd:string .

topo:location a rdf:Property ;
  rdfs:label "location" ;
  rdfs:domain topo:LocatedNetEntity ;
  rdfs:range topo:EntityLocation .

topo:id a rdf:Property ;
  rdfs:label "id" ;
  rdfs:comment "unique identifier" ;
  rdfs:domain topo:BaseObject ;
  rdfs:range <https://w3id.org/linkml/Any> .

topo:validFrom a rdf:Property ;
  rdfs:label "validFrom" ;
  rdfs:comment "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)." ;
  rdfs:range xsd:dateTime .

topo:validTo a rdf:Property ;
  rdfs:label "validTo" ;
  rdfs:comment "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)." ;
  rdfs:range xsd:dateTime .

topo:longname a rdf:Property ;
  rdfs:label "longname" ;
  rdfs:comment "Longer name of a resource" ;
  rdfs:domain topo:NamedResource ;
  rdfs:range xsd:string .

topo:AssociatedPositioningSystem a rdfs:Class ;
  rdfs:label "AssociatedPositioningSystem" ;
  rdfs:comment """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.""" ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/InformationObject> .

topo:intrinsicCoordinate a rdf:Property ;
  rdfs:label "intrinsicCoordinate" ;
  rdfs:domain topo:AssociatedPositioningSystem ;
  rdfs:range topo:IntrinsicCoordinate .

<http://standards.iso.org/iso/15926/part14/System> a rdfs:Class .

topo:PositioningSystemCoordinate a rdfs:Class ;
  rdfs:label "PositioningSystemCoordinate" ;
  rdfs:comment "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." ;
  rdfs:subClassOf <http://standards.iso.org/iso/15926/part14/InformationObject> .

topo:AssociatedNetElementCoordinate a rdfs:Class ;
  rdfs:label "AssociatedNetElementCoordinate" ;
  rdfs:comment "Locates a NetEntity on a NetElement using a pair of positioning system coordinates." ;
  rdfs:subClassOf topo:AssociatedNetElement .

topo:start a rdf:Property ;
  rdfs:label "start" ;
  rdfs:domain topo:AssociatedNetElementCoordinate ;
  rdfs:range topo:PositioningSystemCoordinate .

topo:end a rdf:Property ;
  rdfs:label "end" ;
  rdfs:domain topo:AssociatedNetElementCoordinate ;
  rdfs:range topo:PositioningSystemCoordinate .

topo:keepsOrientation a rdf:Property ;
  rdfs:label "keepsOrientation" ;
  rdfs:comment "child `LinearElement` keeps same Orientation as parent `LinearElement`. `false`: Orientation is not relevant, `true`: Orientation is relevant"@en ;
  rdfs:domain topo:AssociatedNetElement ;
  rdfs:range xsd:boolean .

topo:netElement a rdf:Property ;
  rdfs:label "netElement" ;
  rdfs:range topo:PositioningNetElement .

topo:NonLinearElement a rdfs:Class ;
  rdfs:label "NonLinearElement" ;
  rdfs:comment "\"PositioningNetElement\" without any extenstion, a spot or point." ;
  rdfs:subClassOf topo:PositioningNetElement .

topo:elementCollection a rdf:Property ;
  rdfs:label "elementCollection" ;
  rdfs:domain topo:CompositionNetElement ;
  rdfs:range topo:ElementPartCollection .

topo:relation a rdf:Property ;
  rdfs:label "relation" ;
  rdfs:domain topo:NetElement ;
  rdfs:range topo:Relation .

topo:associatedPositioningSystem a rdf:Property ;
  rdfs:label "associatedPositioningSystem" ;
  rdfs:domain topo:PositioningNetElement ;
  rdfs:range topo:AssociatedPositioningSystem .

topo:CompositionNetElement a rdfs:Class ;
  rdfs:label "CompositionNetElement" ;
  rdfs:comment "A topological element that aggregates some other topological element from another level (e.g. a macro element aggregates micro elements)." ;
  rdfs:subClassOf topo:NetElement .

topo:LinearElement a rdfs:Class ;
  rdfs:label "LinearElement" ;
  rdfs:comment "One-dimensional \"PositioningNetElement\" with a start (intrinsic coordinate 0.0) and an end (intrinsic coordinate 1.0)." ;
  rdfs:subClassOf topo:PositioningNetElement .

topo:LevelNetwork a rdfs:Class ;
  rdfs:label "LevelNetwork" ;
  rdfs:comment "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)." ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/System> .

topo:descriptionLevel a rdf:Property ;
  rdfs:label "descriptionLevel" ;
  rdfs:comment "Name of the description level, recommended values: `macro`, `meso` and `micro`." ;
  rdfs:domain topo:LevelNetwork ;
  rdfs:range topo:DescriptionLevel .

topo:networkResource a rdf:Property ;
  rdfs:label "networkResource" ;
  rdfs:range topo:NetworkResource ;
  rdfs:subPropertyOf <http://standards.iso.org/iso/15926/part14/hasFunctionalPart> .

topo:SpotLocation a rdfs:Class ;
  rdfs:label "SpotLocation" ;
  rdfs:comment "Point location information for \"LocatedNetEntity\" instances in reference to one \"PositioningNetElement\" instance." ;
  rdfs:subClassOf topo:EntityLocation , <http://standards.iso.org/iso/15926/part14/PointInSpace> .

topo:applicationDirection a rdf:Property ;
  rdfs:label "applicationDirection" ;
  rdfs:comment """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""" ;
  rdfs:range topo:ApplicationDirection .

<http://standards.iso.org/iso/15926/part14/InanimatePhysicalObject> a rdfs:Class .

<http://standards.iso.org/iso/15926/part14/Location> a rdfs:Class .

topo:AreaLocation a rdfs:Class ;
  rdfs:label "AreaLocation" ;
  rdfs:comment "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." ;
  rdfs:subClassOf topo:EntityLocation , <http://standards.iso.org/iso/15926/part14/RegionInSpace> .

topo:associatedNetElement a rdf:Property ;
  rdfs:label "associatedNetElement" ;
  rdfs:domain topo:AreaLocation ;
  rdfs:range topo:AssociatedNetElement .

topo:PositionedRelation a rdfs:Class ;
  rdfs:label "PositionedRelation" ;
  rdfs:comment "Oriented relation between exactly two PositioningNetElements." ;
  rdfs:subClassOf topo:Relation .

topo:positionOnB a rdf:Property ;
  rdfs:label "positionOnB" ;
  rdfs:comment """if \"0\" then the \"Relation\" is using the start of NetElement B
if \"1\" then the \"Relation\" is using the end of NetElement B""" ;
  rdfs:domain topo:PositionedRelation ;
  rdfs:range topo:Usage .

topo:element a rdf:Property ;
  rdfs:label "element" ;
  rdfs:comment "superproperty of [elementA](#elementA) and [elementB](#elementB) to infer inverse [relation](#relation)" ;
  rdfs:domain topo:Relation ;
  rdfs:range topo:NetElement .

topo:positionOnA a rdf:Property ;
  rdfs:label "positionOnA" ;
  rdfs:comment """if \"0\" then the \"Relation\" is using the start of NetElement A
if \"1\" then the \"Relation\" is using the end of NetElement A""" ;
  rdfs:domain topo:PositionedRelation ;
  rdfs:range topo:Usage .

topo:elementB a rdf:Property ;
  rdfs:label "elementB" ;
  rdfs:domain topo:PositionedRelation ;
  rdfs:range topo:PositioningNetElement ;
  rdfs:subPropertyOf topo:element .

topo:navigability a rdf:Property ;
  rdfs:label "navigability" ;
  rdfs:comment """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.""" ;
  rdfs:domain topo:PositionedRelation ;
  rdfs:range topo:Navigability .

topo:elementA a rdf:Property ;
  rdfs:label "elementA" ;
  rdfs:domain topo:PositionedRelation ;
  rdfs:range topo:PositioningNetElement ;
  rdfs:subPropertyOf topo:element .

topo:AssociatedNetElementIntrinsic a rdfs:Class ;
  rdfs:label "AssociatedNetElementIntrinsic" ;
  rdfs:comment "Locates a NetEntity on a NetElement using a pair of intrinsic coordinates." ;
  rdfs:subClassOf topo:AssociatedNetElement .

topo:intrinsicCoordEnd a rdf:Property ;
  rdfs:label "intrinsicCoordEnd" ;
  rdfs:comment "End location of the \"NetEntity\" instance in relation to the \"PositioningNetElement\" which is used for positioning within the network." ;
  rdfs:domain topo:AssociatedNetElementIntrinsic ;
  rdfs:range xsd:double .

topo:intrinsicCoordBegin a rdf:Property ;
  rdfs:label "intrinsicCoordBegin" ;
  rdfs:comment "Start location of the \"NetEntity\" instance in relation to the PositioningNetElement\" which is used for positioning within the network." ;
  rdfs:domain topo:AssociatedNetElementIntrinsic ;
  rdfs:range xsd:double .

topo:SpotLocationIntrinsic a rdfs:Class ;
  rdfs:label "SpotLocationIntrinsic" ;
  rdfs:comment "Additional Information in respect of intrinsic positioning for a \"SpotLocation\" instance." ;
  rdfs:subClassOf topo:SpotLocation .

topo:intrinsicCoord a rdf:Property ;
  rdfs:label "intrinsicCoord" ;
  rdfs:comment "Location in reference to the chosen NetElement, given as value in the interval from 0 to 1." ;
  rdfs:range xsd:double .

<http://standards.iso.org/iso/15926/part14/Role> a rdfs:Class .

<http://standards.iso.org/iso/15926/part14/InformationObject> a rdfs:Class .

<http://standards.iso.org/iso/15926/part14/PointInSpace> a rdfs:Class .

topo:LinearLocationCoordinate a rdfs:Class ;
  rdfs:label "LinearLocationCoordinate" ;
  rdfs:comment "Relation between a \"LinearLocation\" and \"PositioningSystemCoordinate\" instances." ;
  rdfs:subClassOf topo:LinearLocation .

topo:coordinate a rdf:Property ;
  rdfs:label "coordinate" ;
  rdfs:range topo:PositioningSystemCoordinate .

topo:associatedElement a rdf:Property ;
  rdfs:label "associatedElement" ;
  rdfs:domain topo:LinearLocation ;
  rdfs:range topo:OrderedAssociatedNetElement .

topo:IntrinsicCoordinate a rdfs:Class ;
  rdfs:label "IntrinsicCoordinate" ;
  rdfs:comment "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." ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/InformationObject> .

topo:reaches a rdf:Property ;
  rdfs:label "reaches" ;
  rdfs:comment "Asserts that one end of a <#LinearElement> given as subject <#IntrinsicCoordinate> can reach the object <#IntrinsicCoordinate> and its corresponding <#LinearElement> without change of direction" ;
  rdfs:domain topo:IntrinsicCoordinate ;
  rdfs:range topo:IntrinsicCoordinate .

topo:OrderedAssociatedNetElement a rdfs:Class ;
  rdfs:label "OrderedAssociatedNetElement" ;
  rdfs:comment "Ordered sequences of “AssociatedNetElement” instances which together describe the complete structure of a “LinearLocation” instance." ;
  rdfs:subClassOf topo:AssociatedNetElement .

topo:sequence a rdf:Property ;
  rdfs:label "sequence" ;
  rdfs:comment "Sequence of the child element within the ordered collection" ;
  rdfs:range xsd:nonNegativeInteger .

topo:GeometricPositioningSystem a rdfs:Class ;
  rdfs:label "GeometricPositioningSystem" ;
  rdfs:comment """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.""" ;
  rdfs:subClassOf topo:PositioningSystem .

topo:crsDefininition a rdf:Property ;
  rdfs:label "crsDefininition" ;
  rdfs:comment "coordinate reference system" ;
  rdfs:domain topo:GeometricPositioningSystem ;
  rdfs:range <https://w3id.org/linkml/Any> .

topo:OrderedCollection a rdfs:Class ;
  rdfs:label "OrderedCollection" ;
  rdfs:comment "Collection of ordered NetElements" ;
  rdfs:subClassOf topo:ElementPartCollection .

topo:elementPart a rdf:Property ;
  rdfs:label "elementPart" ;
  rdfs:range topo:NetElement ;
  rdfs:subPropertyOf <http://standards.iso.org/iso/15926/part14/hasFunctionalPart> .

topo:elementPartList a rdf:Property ;
  rdfs:label "elementPartList" ;
  rdfs:domain topo:OrderedCollection ;
  rdfs:range rdf:List .

topo:UnorderedCollection a rdfs:Class ;
  rdfs:label "UnorderedCollection" ;
  rdfs:comment "Collection of unordered NetElements" ;
  rdfs:subClassOf topo:ElementPartCollection .

topo:Relation a rdfs:Class ;
  rdfs:label "Relation" ;
  rdfs:comment "Connexity relation between two NetElements in the connexity graph of the network." ;
  rdfs:subClassOf topo:NetworkResource .

topo:LinearLocation a rdfs:Class ;
  rdfs:label "LinearLocation" ;
  rdfs:comment "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." ;
  rdfs:subClassOf topo:EntityLocation , <http://standards.iso.org/iso/15926/part14/RegionInSpace> .

topo:Network a rdfs:Class ;
  rdfs:label "Network" ;
  rdfs:comment "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." ;
  rdfs:subClassOf topo:NamedResource , <http://standards.iso.org/iso/15926/part14/System> .

topo:level a rdf:Property ;
  rdfs:label "level" ;
  rdfs:domain topo:Network ;
  rdfs:range topo:LevelNetwork .

topo:LinearAnchorPoint a rdfs:Class ;
  rdfs:label "LinearAnchorPoint" ;
  rdfs:comment """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.""" ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/PointInSpace> .

topo:measure a rdf:Property ;
  rdfs:label "measure" ;
  rdfs:comment """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”"""@en ;
  rdfs:range xsd:double .

topo:measureToNext a rdf:Property ;
  rdfs:label "measureToNext" ;
  rdfs:comment "Basis for modified interpolation of location in the interval up to the next “LinearAnchorPoint” of the given  \"LinearPositioningSystem”." ;
  rdfs:domain topo:LinearAnchorPoint ;
  rdfs:range xsd:double .

topo:anchorName a rdf:Property ;
  rdfs:label "anchorName" ;
  rdfs:comment "Name of the “LinearAnchorPoint” instance which is unique within the given \"LinearPositioningSystem\"" ;
  rdfs:domain topo:LinearAnchorPoint ;
  rdfs:range <https://w3id.org/linkml/Any> .

topo:PositioningSystem a rdfs:Class ;
  rdfs:label "PositioningSystem" ;
  rdfs:comment "generic concept of a positioning system." ;
  rdfs:subClassOf topo:NamedResource , <http://standards.iso.org/iso/15926/part14/InformationObject> .

topo:NamedResource a rdfs:Class ;
  rdfs:label "NamedResource" ;
  rdfs:comment "class for named resources, e.g., NetworkResources, Networks, PositioningSystems" ;
  rdfs:subClassOf topo:BaseObject .

<http://standards.iso.org/iso/15926/part14/Object> a rdfs:Class .

topo:NetworkResource a rdfs:Class ;
  rdfs:label "NetworkResource" ;
  rdfs:comment "Every object of the network is qualified as a resource." ;
  rdfs:subClassOf topo:NamedResource , <http://standards.iso.org/iso/15926/part14/FunctionalObject> .

topo:AssociatedNetElement a rdfs:Class ;
  rdfs:label "AssociatedNetElement" ;
  rdfs:comment "The class \"AssociatedNetElement\" defines topological structures and location information in relation relation between one \"NetElement\" instance and location information for \"NetEntity\" instances." ;
  rdfs:subClassOf <http://standards.iso.org/iso/15926/part14/Role> .

topo:PositioningNetElement a rdfs:Class ;
  rdfs:label "PositioningNetElement" ;
  rdfs:comment "NetElement requiring at least one Positioning System, with orientation (carried by IntrinsicCoordinate)." ;
  rdfs:subClassOf topo:CompositionNetElement .

topo:NetElement a rdfs:Class ;
  rdfs:label "NetElement" ;
  rdfs:comment "A base member of topology in a connexity graph of a network (at any level)." ;
  rdfs:subClassOf topo:NetworkResource .

rdf:List a rdfs:Class .

topo:LinearCoordinate a rdfs:Class ;
  rdfs:label "LinearCoordinate" ;
  rdfs:comment "Location in reference to a given \"LinearPositioningSystem\"." ;
  rdfs:subClassOf topo:PositioningSystemCoordinate .

topo:lateralOffset a rdf:Property ;
  rdfs:label "lateralOffset" ;
  rdfs:comment "distance perpendicular to the \"line of reference\""@en ;
  rdfs:domain topo:LinearCoordinate ;
  rdfs:range xsd:double .

topo:verticalOffset a rdf:Property ;
  rdfs:label "verticalOffset" ;
  rdfs:comment "height above the \"line of reference\" at the position defined by \"measure\""@en ;
  rdfs:domain topo:LinearCoordinate ;
  rdfs:range xsd:double .

topo:NetEntity a rdfs:Class ;
  rdfs:label "NetEntity" ;
  rdfs:comment "\"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." ;
  rdfs:subClassOf topo:NetworkResource , <http://standards.iso.org/iso/15926/part14/InanimatePhysicalObject> .

topo:BaseObject a rdfs:Class ;
  rdfs:label "BaseObject" ;
  rdfs:comment "base class" ;
  rdfs:subClassOf <http://standards.iso.org/iso/15926/part14/Object> .

topo:LinearPositioningSystem a rdfs:Class ;
  rdfs:label "LinearPositioningSystem" ;
  rdfs:comment """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.""" ;
  rdfs:subClassOf topo:PositioningSystem .

topo:anchor a rdf:Property ;
  rdfs:label "anchor" ;
  rdfs:domain topo:LinearPositioningSystem ;
  rdfs:range topo:LinearAnchorPoint .

topo:unit a rdf:Property ;
  rdfs:label "unit" ;
  rdfs:comment "unit for measurement" ;
  rdfs:domain topo:LinearPositioningSystem ;
  rdfs:range <https://w3id.org/linkml/Any> .

topo:endMeasure a rdf:Property ;
  rdfs:label "endMeasure" ;
  rdfs:comment "Value for measurement at the end of the \"LinearPositioningSystem\"" ;
  rdfs:domain topo:LinearPositioningSystem ;
  rdfs:range xsd:double .

topo:startMeasure a rdf:Property ;
  rdfs:label "startMeasure" ;
  rdfs:comment "Value for measurement at the beginning of the \"LinearPositioningSystem\"" ;
  rdfs:domain topo:LinearPositioningSystem ;
  rdfs:range xsd:double .

topo:linearReferencingMethod a rdf:Property ;
  rdfs:label "linearReferencingMethod" ;
  rdfs:comment "Method for linear referencing, `absolute`, `relative` or `interpolation`." ;
  rdfs:domain topo:LinearPositioningSystem ;
  rdfs:range topo:LrsMethod .

topo:EntityLocation a rdfs:Class ;
  rdfs:label "EntityLocation" ;
  rdfs:comment "Topological and positional location information for \"NetEntity\" instances." ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/Location> .

topo:SpotLocationCoordinate a rdfs:Class ;
  rdfs:label "SpotLocationCoordinate" ;
  rdfs:comment "The class \"SpotLocationCoordinate\" defines the relation between a \"SpotLocation\" and \"PositioningSystemCoordinate\"." ;
  rdfs:subClassOf topo:SpotLocation .

topo:ElementPartCollection a rdfs:Class ;
  rdfs:label "ElementPartCollection" ;
  rdfs:comment "Collection of Net elements to be aggregated into the higher level NetElement (Generic class)." ;
  rdfs:subClassOf topo:BaseObject , <http://standards.iso.org/iso/15926/part14/FunctionalObject> .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object" .

<http://standards.iso.org/iso/15926/part14/RegionInSpace> a rdfs:Class .

<http://standards.iso.org/iso/15926/part14/hasFunctionalPart> a rdf:Property ;
  rdfs:range <https://w3id.org/linkml/Any> .

topo:ApplicationDirection a rdfs:Datatype ;
  rdfs:label "ApplicationDirection" .

topo:DescriptionLevel a rdfs:Datatype ;
  rdfs:label "DescriptionLevel" ;
  rdfs:comment "recommended, predefined description levels: \"macro\", \"meso\" and \"micro\"" .

topo:LrsMethod a rdfs:Datatype ;
  rdfs:label "LrsMethod" .

topo:Navigability a rdfs:Datatype ;
  rdfs:label "Navigability" .

topo:Orientation a rdfs:Datatype ;
  rdfs:label "Orientation" .

topo:Usage a rdfs:Datatype ;
  rdfs:label "Usage" .
