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

:ConditionPattern
    rdf:type                      owl:Ontology ;
    dcterms:creator               "Kenneth Vaughn" ;
    dcterms:license               <http://creativecommons.org/licenses/by/4.0/> ;
    dcterms:modified              "2026-05-06T19:57:16Z"^^xsd:dateTime ;
    dcterms:title                 "Traffic Regulation Ontology" ;
    its-core:draft                true ;
    owl:imports                   its-agent: ;
    owl:imports                   its-location: ;
    owl:imports                   its-time: ;
    owl:imports                   :CorePattern ;
    skos:definition               "This ontology defines concepts related to traffic regulations." .

:Condition
    rdf:type        owl:Class ;
    dash:abstract   true ;
    rdfs:subClassOf :RegulationThing ;
    skos:definition "A boolean condition that must evaluate to true for the associated regulation(s) to currently apply. Even if the condition is true, it is not active if it is currently overridden. The condition may be multi-part." .
        
:LegalBasis
    rdf:type        owl:Class ;
    rdfs:subClassOf :RegulationThing ;
    skos:definition "A legal basis provides references to the legal documents that authorize an entity to issue the types of regulations covered by a traffic regulation order." .

:PermitInformation
    rdf:type        owl:Class ;
    rdfs:subClassOf :RegulationThing ;
    skos:definition "Information about any permits that are associated with the regulation." ;
    skos:example    "If a parking permit is required for a specific area, this class would contain details about that permit, such as how to obtain and what other permits are acceptable." .

:hasCondition
    rdf:type           owl:ObjectProperty ;
    rdfs:range         :Condition ;
    schema:domainIncludes :ConditionSet ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition    "A condition associated with the instance of the traffic regulation or ConditionSet." .

:hasContactInformation
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "Contact information for the entity that is responsible for the traffic regulation." .

:hasLegalBasis
    dcterms:description "formal authority within the law (e.g., statute, ordinance, administrative rule, constitutional provision) that empowers an entity to create, adopt, or enforce a regulation" ;
    rdf:type            owl:ObjectProperty ;
    rdfs:range          :LegalBasis ;
    rdfs:subPropertyOf  :RegulationObjectProperty .

:permitCondition
    dcterms:description "Information about a permit associated with the instance of the traffic regulation order" ;
    rdf:type            owl:ObjectProperty ;
    rdfs:subPropertyOf  :RegulationObjectProperty .
    
:TextComposite
    rdf:type        owl:Class ;
    skos:definition "An attribute that consists of text (multi-lingual string) on the default area of the main pictogram." .

:DestinationInfo
    rdf:type        owl:Class ;
    skos:definition "An attribute that indicates destination information, such as distance to destination or direction to destination." .

:SignDestination
    rdf:type        owl:Class ;
    rdfs:subClassOf :RegulationThing ;
    skos:definition "A destination that is indicated on the road sign." .

:arrowDirection
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "A direction that is indicated on the road sign." .

:destinationHorizon
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The distance to the destination or the time to the destination." .

:destinationPlace
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The place to which the road sign is pointing." .

:destinationRoad
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The road to which the road sign is pointing." .

:displayType
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The type of display that is used to display the permit." .

:divergeHorizon
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The distance between the sign and the junction or diverge point that leads to the point of interest." .

:divergeName
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The name of the point of interest (e.g., destination or current location for direction 0)." .

:divergeRoute
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The route to which the road sign is pointing." .

:grantsPermission
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The permissions that are granted by the permit." .

:hasAssociatedFee
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "A fee that is associated with the instance of the traffic regulation." .

:hasRegistrationMachine
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "A registration machine that is associated with the instance of the traffic regulation." .

:howToObtainPermit
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The method by which the permit can be obtained." .

:isLocationSpecific
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "Indicates whether the permit is location specific." .

:isActive
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "A condition that must be met for the traffic regulation to be in effect." .

:legalBasis
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The legal basis for the traffic regulation." .

:maximumDurationOfPermit
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The maximum duration of the permit." .

:minimumTimeToNextEntry
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The minimum time to the next entry." .

:permittedEntityType
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The type of entity that is permitted to use the permit." .

:permitInformation
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "Information about any permits that are associated with the regulation." .

:urlForApplication
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The URL for the application of the permit." .

:urlForInformation
    rdf:type        owl:ObjectProperty ;
    rdfs:subPropertyOf :RegulationObjectProperty ;
    skos:definition "The URL for the information about the permit." .