Introduction

The Transport Disruption ontology provides a formal framework for modelling travel and transport related events that have a disruptive impact on an agent's planned travel.

The ontology can be considered as consisting of two main sections: classes modelling the disruptive event and its impact on an agent’s plan, and a hierarchy of travel and transport related events.

For details of the ontology itself, please see the ontology documentation. The ontology is also available in TTL and RDF/XML encodings either directly or through content negotiation using the http://purl.org/td/transportdisruption namespace.

Example Events

Throughout this page, examples are defined in the TTL format using the following namespaces:

 @prefix : <http://www.example.com/transportdisruption#> .
 @prefix td: <http://purl.org/td/transportdisruption#> .
 @prefix tl: <http://purl.org/NET/c4dm/timeline.owl#> .
 @prefix event: <http://purl.org/NET/c4dm/event.owl#> .
 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
 @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
 @base <http://www.example.com/transportdisruption> .

While the ontology documentation is useful, some examples are also useful! Lets consider an simple example where there will be roadworks on Union Street in Aberdeen, UK taking place overnight from 19:00 on Monday 20 October 2015 until 06:00 Tuesday 21 October 2015, and as a result the road will be closed. This can be represented as:

 :roadworks a td:Roadworks;
    event:place :roadworksLocation;
    event:time :mondayNight.

 :roadworksLocation a geo:Point;
    geo:lat "57.146451";
    geo:long "-2.09872".

 :mondayNight a tl:Interval;
    tl:beginsAtDateTime "2015-10-20T19:00:00"^^xsd:dateTime;
    tl:endsAtDateTime "2015-10-21T07:00:00"^^xsd:dateTime.

 :roadclosure a td:RoadClosure;
    event:place <http://linkedgeodata.org/page/triplify/way95288246>;
    event:time :mondayNight;
    event:factor :roadworks.

A couple of things to note about this example:

Example Disruption

OK, so we have some events, now lets consider the travel plans of Bob, who was due to drive along that part of Union Street on his way to work that evening:

  :bob a foaf:Person;
     td:hasPlan :driveToWork.

  :bobsDriveToWork a td:Plan;
     :time [ tl:beginsAtDateTime "2015-10-20T20:30:00"^^xsd:dateTime;
               tl:endsAtDateTime "2015-10-20T20:55:00"^^xsd:dateTime. ];
     :route [ ....
             <http://linkedgeodata.org/page/triplify/way95288246>,
            ... ].

As Bob will be travelling when the road is closed, he is not going to be able to complete his journey as normal. Most likely he is going to have to divert his route to avoid the road closure. Using the Transport Disruption ontology, this could be represented as follows:

  :alternativeRouteNecessary a td:DisruptiveImpact;
      td:relevantTo :bob;
      td:impactsOn :bobsDriveToWork;
      td:hasCause :roadclosure.

As td:hasCause is the inverse property of td:casuseOf the triple eg:alternativeRouteNecessary td:hasCause eg:roadclosure will result in the following inference

 :roadclosure td:causeOf :alternativeRouteNecessary.

And as such the eg:roadclosure is now considered to be a disruptive event as it has had a disruptive impact on Bob's travel plans, captured by the following assertion:

 :roadclosure a td:DisruptiveEvent.

The full example is available here.

More Information

For more information about the ontology itself: