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 xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX lc: <http://semweb.mmlab.be/ns/linkedconnections#>
PREFIX linkml: <https://w3id.org/linkml/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX schema: <http://schema.org/>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX vann: <http://purl.org/vocab/vann/>

lc:Ontology a owl:Ontology ;
  rdfs:label "The Linked Connections ontology"@en ;
  rdfs:comment "This ontology provides the predicates necessary to describe a connection or hop from one transit stop to another."@en ;
  dcterms:contributor <https://pietercolpaert.be/#me> , <https://julianrojas.org/#me> ;
  schema:inLanguage "en" ;
  vann:preferredNamespacePrefix "lc" ;
  vann:preferredNamespaceUri "http://semweb.mmlab.be/ns/linkedconnections#"^^xsd:anyURI ;
  sh:declare [
    sh:prefix "lc" ;
    sh:namespace "http://semweb.mmlab.be/ns/linkedconnections#"^^xsd:anyURI
  ] , [
    sh:prefix "linkml" ;
    sh:namespace "https://w3id.org/linkml/"^^xsd:anyURI
  ] , [
    sh:prefix "xsd" ;
    sh:namespace "http://www.w3.org/2001/XMLSchema#"^^xsd:anyURI
  ] , [
    sh:prefix "foaf" ;
    sh:namespace "http://xmlns.com/foaf/0.1/"^^xsd:anyURI
  ] .

lc:UnscheduledConnection a owl:Class ;
  rdfs:label "Unscheduled Connection"@en ;
  rdfs:comment "Describes a connection that will not happen anymore, and that should not appear in a route planning result as it was unscheduled."@en ;
  rdfs:subClassOf lc:Connection .

lc:CancelledConnection a owl:Class ;
  rdfs:label "Cancelled Connection"@en ;
  rdfs:comment "Describes a connection that will not happen anymore, and that should appear as “cancelled” in a route planning result"@en ;
  rdfs:subClassOf lc:Connection .

lc:Connection a owl:Class ;
  rdfs:label "Connection"@en ;
  rdfs:comment "Describes a departure at a certain stop and an arrival at a different stop"@en ;
  rdfs:subClassOf [
    a owl:Restriction ;
    owl:onProperty lc:arrivalStop ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:arrivalTime ;
    owl:allValuesFrom xsd:dateTime
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:arrivalDelay ;
    owl:allValuesFrom xsd:duration
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:nextConnection ;
    owl:allValuesFrom lc:Connection
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:departureStop ;
    owl:allValuesFrom owl:Thing
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:departureTime ;
    owl:allValuesFrom xsd:dateTime
  ] , [
    a owl:Restriction ;
    owl:onProperty lc:departureDelay ;
    owl:allValuesFrom xsd:duration
  ] .

foaf:Document a owl:Class .

lc:arrivalStop a owl:ObjectProperty ;
  rdfs:label "Arrival Stop"@en ;
  rdfs:comment "A vehicle will stop here on arrival"@en ;
  rdfs:domain lc:Connection .

lc:arrivalTime a owl:DatatypeProperty ;
  rdfs:label "Arrival Time"@en ;
  rdfs:comment "The time of arrival at a certain stop (when e.g., a delay is announced, the lc:arrivalTime will show that actual time of arrival)"@en ;
  rdfs:range xsd:dateTime ;
  rdfs:domain lc:Connection .

lc:arrivalDelay a owl:DatatypeProperty ;
  rdfs:label "Arrival Delay"@en ;
  rdfs:comment "The time in which the lc:arrivalTime differs from the scheduled arrival time"@en ;
  rdfs:range xsd:duration ;
  rdfs:domain lc:Connection .

lc:nextConnection a owl:ObjectProperty ;
  rdfs:label "Next Connection"@en ;
  rdfs:comment "The next connection on this vehicle's trajectory"@en ;
  rdfs:range lc:Connection ;
  rdfs:domain lc:Connection .

lc:departureStop a owl:ObjectProperty ;
  rdfs:label "Departure Stop"@en ;
  rdfs:comment "A vehicle departs here"@en ;
  rdfs:domain lc:Connection .

lc:departureTime a owl:DatatypeProperty ;
  rdfs:label "Departure Time"@en ;
  rdfs:comment "The time of departure at a certain stop (when e.g., a delay is announced, the lc:departureTime will show that actual time of departure)"@en ;
  rdfs:range xsd:dateTime ;
  rdfs:domain lc:Connection .

lc:departureTimeQuery a owl:DatatypeProperty ;
  rdfs:label "DepartureTime query"@en ;
  rdfs:comment "A property representing a departureTime query"@en ;
  rdfs:range xsd:dateTime .

lc:departureDelay a owl:DatatypeProperty ;
  rdfs:label "Departure Delay"@en ;
  rdfs:comment "The time in which the lc:departureTime differs from the scheduled departure time"@en ;
  rdfs:range xsd:duration ;
  rdfs:domain lc:Connection .

dcterms:contributor a owl:AnnotationProperty .

schema:inLanguage a owl:AnnotationProperty .

vann:preferredNamespacePrefix a owl:AnnotationProperty .

vann:preferredNamespaceUri a owl:AnnotationProperty .

sh:declare a owl:AnnotationProperty .

sh:prefix a owl:AnnotationProperty .

sh:namespace a owl:AnnotationProperty .

xsd:duration a rdfs:Datatype .
