@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix : <https://w3id.org/itsdata/location/v1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix its-core: <https://w3id.org/itsdata/core/v1/> .
@prefix schema: <https://schema.org/> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix vann: <http://purl.org/vocab/vann/> .

:ItineraryPattern
    a owl:Ontology ;
    dcterms:title "ITS Itinerary Referencing"@en ;
    skos:definition "Methodology module for itineraries (ordered sets of features) and itinerary geometries."@en ;
    dcterms:creator "Kenneth Vaughn" ;
    dcterms:created "Draft" ;
    dcterms:modified "2026-05-01"^^xsd:date ;
    dcterms:license "http://creativecommons.org/licenses/by/4.0/" ;
    its-core:draft "true" ;
    owl:imports :LocationCorePattern ;
    owl:versionInfo "0.0.1" ;
    owl:versionIRI <https://w3id.org/itsdata/location/v1/ItineraryPattern/r0.1> ;
    vann:preferredNamespacePrefix "its-location" ;
    vann:preferredNamespaceUri "https://w3id.org/itsdata/location/v1/" .

#################################################################
# Classes
#################################################################

:Itinerary
    a owl:Class ;
    rdfs:subClassOf :Feature ;
    skos:definition "An ordered set of multiple physically separate features forming a route or itinerary."@en .

:ItineraryGeometry
    a owl:Class ;
    rdfs:subClassOf :Geometry ;
    skos:definition "A geometry that encodes an itinerary using a specific method."@en .

:ItineraryByWaypoints
    a owl:Class ;
    rdfs:subClassOf :ItineraryGeometry ;
    skos:definition "An itinerary geometry encoded as an ordered sequence of features (waypoints)."@en .

:ItineraryCode
    a owl:Class ;
    rdfs:subClassOf :ItineraryGeometry ;
    rdfs:subClassOf :CodedGeometry ;
    skos:definition "An itinerary geometry whose route geometry is not modelled here but can be resolved using :hasLookupCode and an external itinerary/route referencing system."@en .

:FeatureList
    a owl:Class ;
    rdfs:subClassOf rdf:List ;
    rdfs:subClassOf [
        owl:onProperty    rdf:first ;
        owl:allValuesFrom :Feature ;
    ] ;
    skos:definition "An ordered list of member features (e.g., itinerary waypoints)."@en .

#################################################################
# Properties
#################################################################

:locationContainedInItinerary
    a owl:ObjectProperty ;
    rdfs:subPropertyOf :LocationObjectProperty ;
    rdfs:subPropertyOf :hasWaypointList ;
    schema:domainIncludes :ItineraryByWaypoints ;
    schema:rangeIncludes :FeatureList ;
    skos:definition "DATEX-aligned property name for associating an itinerary by waypoints with its ordered list of member features."@en .

:hasWaypointList
    a owl:ObjectProperty ;
    rdfs:subPropertyOf :LocationObjectProperty ;
    schema:domainIncludes :ItineraryByWaypoints ;
    schema:rangeIncludes :FeatureList ;
    skos:definition "Associates an itinerary by waypoints with its ordered list of member features (waypoints)."@en .

