<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Context-Aware Route Planning: a Personalized and Situation-Aware Multi-Modal Transport Routing Approach</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>r Bont</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Brouw</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dörth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Arndt[</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Miel Vander Sande</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pieter Heyvaert</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Anastasia Dimou[</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>r Colp</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>orgh[</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Filip D</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>IDLab, Ghent University - imec</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>People increasingly rely on multi-modal (car, train, bus, e-bike, etc.) transport. However, current route planning does not allow the flexibility to seamlessly integrate users' preferences and goals, different transport types, or adapt to disruptive traffic events. In this demonstrator, we showcase a context-aware semantic route planner that combines users' individualized goals with geographical route planning using multi-modal transport modes. This means that the route planning can incorporate various goals of the user, e.g. visiting a friend or picking up an item, while the planner figures out the best order of visiting and the most suited transport modes. As transport is very dynamic, Stream Reasoning techniques are employed for real-time traffic monitoring. This allows the planner to automatically adapts the route when interruptions or obstructions, resulting in delays, are detected.</p>
      </abstract>
      <kwd-group>
        <kwd>Route planning</kwd>
        <kwd>Transport</kwd>
        <kwd>Context-aware</kwd>
        <kwd>Stream Reasoning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        As the pressure on traffic infrastructure increases, route planning is currently missing
the flexibility to keep up with the diversity of its users’ preferences [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Current route
planning can be seen as rather static, only limited transport modes are supported,
and not all modes can be combined. Most importantly, they lack the flexibility to
incorporate personalization, i.e. user preferences and goals, and adapt to changing
traffic situations. This demonstration paper proposes a context-aware route planner,
that exploits knowledge-driven techniques to integrate profile information and traffic
situational awareness. The designed semantic route planner finds the best connections,
based on the profile information and preferences of its users. It takes into account the
preferred transport modes of its users in different situations, e.g. a user might like to
Copyright © 2020 for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC by 4.0).
walk up to 2 km when it is not raining; bike up to 5km; take the bus when it’s not rush
hour; etc. Furthermore, one can add various goals, i.e. tasks one wants to accomplish
when reaching the destination. This can range from visiting certain locations to picking
up personal transport modes, such as picking up a bike and using it for further transport.
As traffic can be very turbulent, our route planner can monitor real-time traffic streams.
We exploit Stream Reasoning (SR) techniques [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] to infer disruptions and obstructions
from the traffic streams in real-time. The SR infers which events will have negative
influence, e.g. delays, on the suggested routes of the users, such that alternatives can be
automatically suggested in order to decrease waiting time.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>State of the art</title>
      <p>Specialized software exists to calculate routes on road and transit networks. These can
be categorized in: (i) software as a service, (ii) self-hosted server software, as well as
(iii) client-side route planners.</p>
      <p>Software as a service that can be used for route planning includes Mapbox
turn-byturn1, Google Maps2, HERE3, Navitia.io4, etc. The drawback of this approach is that
it is only customizable to the extent the service provider allows to customize the route
planning.</p>
      <p>Open-source tools to set up a route planner on your own server include Open Trip
Planner5, OSRM6, or Itinero7. The drawback of this approach is that it is tedious to
maintain.</p>
      <p>
        A third approach is a client-side route planner. A Software Development Kit (SKD)
called Planner.js8 is used in this demo. The SDK can integrate with public transport
data. Currently, it works for Belgian public transport data [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], and world-wide short road
network queries with a republished version of OpenStreetMap as Routable Tiles [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>None of the existing approaches allows to easily integrate profile information or
monitor traffic streams. However, client-side route planners such as Planner.js allow the
most flexibility to integrate different types of transport, profile information, and traffic
monitoring.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Context-aware route planning</title>
      <p>1 https://www.mapbox.com/use-cases/turn-by-turn-navigation/
2 https://developers.google.com/maps/documentation
3 https://developer.here.com/
4 https://navitia.io
5 http://opentripplanner.org
6 http://project-osrm.org/
7 https://itinero.tech
8 https://planner.js.org
To integrate user preferences and profile information, we exploit the Amadeus workflow
engine9, built on top of eye, i.e. an N3 reasoner10. Amadeus allows the composition
of dynamic workflows, here the workflow composition is the composition of traject
segments. Amadeus accepts requests from users that want to travel to a certain location
while performing a set of goals. It will use their profile information to link the route
segments that match the preferences of the user. Amadeus will investigate the best order
to link the various route segments, such that the least amount of time is spent traveling
while complying with the preferences of its users. Thus, Amadeus figures out which
route segments can be taken, the mode of transport and the best order to take them in.
The exact details of filling in the route segments are left to the route planner.
3.2</p>
      <sec id="sec-3-1">
        <title>Route planning</title>
        <p>The route planner, Planner.js, will accept the selected route segments from Amadeus
and connect with the available public transport APIs to find the exact schedules. It can
also calculate exact routes when a user is walking, biking, or driving.
3.3</p>
      </sec>
      <sec id="sec-3-2">
        <title>Dynamic disruption detection</title>
        <p>When a suggested route has been selected, traffic is being monitored to detect traffic
disruptions that will influence the suggested route. For example, when a user has to
take a bus connection after a train ride, the traffic that influences the bus ride will
be monitored once the user nears the bus station. If the traffic data streams indicate a
disruption regarding the bus ride, alternatives can be suggested.</p>
        <p>To avoid waiting time, the platform will monitor real-time traffic streams and infer
which traffic events in the stream will require a recalculation of the suggested routes. As</p>
        <sec id="sec-3-2-1">
          <title>9 https://github.com/IDLabResearch/AMADEUS-workflows 10 https://github.com/josd/eye</title>
          <p>
            depicted in Figure 1, we use the RML Streamer [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] to map GTFS ( i.e. a specification
of transport updates) related streams to the transport disruption ontology11. The stream
reasoner C-Sprite [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] is used to reason upon the traffic events, link them to the route
connections, and infer which events will cause delays. Streaming MASSIF12 [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] is used
as a prototyping platform to seamlessly integrate the various streaming and reasoning
components.
4
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Demonstrator</title>
      <sec id="sec-4-1">
        <title>In this demonstrator, we will showcase the following scenario:</title>
        <p>A user Rik is currently at work in Brussels and wants to go the Ghent where he lives.
We know from his profile that he likes to walk, however not longer than 15 minutes,
he likes to bike, but if possible he prefers public transport. His bike is currently at the
library in Ghent. While going home, he wants to visit his friend Sabine and wants to have
his bike back home. He does not want to manually calculate the best order to perform
his goals but expects the route planner to provide him an optimal route and adapt it if
disruptions occur.</p>
        <p>In the demonstrator, the platform will suggest the routes from Rik his work, to his
home in Ghent, while visiting his friend Sabine and stopping to fetch his bike. We
will showcase what happens when a disruption in traffic occurs causing to delay Rik’s
route. The demonstrator will showcase how the real-time streams are incorporated and
disruptions are detected. Most importantly, the route planner will suggest alternatives
routes, taking the disruptions into account and still complying with the preferences of
the user. For the demonstrator, we use generated streams to showcase the functionality.
A video13 summarizes this demonstrator.</p>
        <p>Acknowledgments: This research was funded by the FWO SBO grant 150038
(DiSSeCt).
11 https://transportdisruption.github.io/
12 https://github.com/IBCNServices/StreamingMASSIF
13 https://tinyurl.com/ybddezz9</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bast</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delling</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldberg</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Müller-Hannemann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pajor</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanders</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Werneck</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          :
          <article-title>Route planning in transportation networks</article-title>
          .
          <source>In: Algorithm engineering</source>
          , pp.
          <fpage>19</fpage>
          -
          <lpage>80</lpage>
          . Springer (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bonte</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tommasini</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Turck</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ongenae</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valle</surname>
          </string-name>
          , E.D.:
          <article-title>C-sprite: Efficient hierarchical reasoning for rapid rdf stream processing</article-title>
          .
          <source>In: Proceedings of the 13th ACM International Conference on Distributed and Event-based Systems</source>
          . pp.
          <fpage>103</fpage>
          -
          <lpage>114</lpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bonte</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tommasini</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Della</given-names>
            <surname>Valle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>De Turck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Ongenae</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>Streaming massif: cascading reasoning for efficient processing of iot data streams</article-title>
          .
          <source>Sensors</source>
          <volume>18</volume>
          (
          <issue>11</issue>
          ),
          <volume>3832</volume>
          (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Colpaert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abelshausen</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meléndez</surname>
            ,
            <given-names>J.A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delva</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Republishing openstreetmap's roads as linked routable tiles</article-title>
          .
          <source>In: European Semantic Web Conference</source>
          . pp.
          <fpage>13</fpage>
          -
          <lpage>17</lpage>
          . Springer (
          <year>2019</year>
          ), http://pieter.pm/demo-paper
          <string-name>
            <surname>-</surname>
          </string-name>
          routable-tiles/
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Colpaert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mannens</surname>
          </string-name>
          , E.:
          <article-title>Public transit route planning through lightweight linked data interfaces</article-title>
          .
          <source>In: International Conference on Web Engineering</source>
          . pp.
          <fpage>403</fpage>
          -
          <lpage>411</lpage>
          . Springer (
          <year>2017</year>
          ), https://pietercolpaert.be/papers/icwe2017-lc/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dell'Aglio</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Della</given-names>
            <surname>Valle</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>van Harmelen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bernstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Stream reasoning: A survey and outlook</article-title>
          .
          <source>Data Science</source>
          <volume>1</volume>
          (
          <issue>1-2</issue>
          ),
          <fpage>59</fpage>
          -
          <lpage>83</lpage>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Haesendonck</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maroy</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heyvaert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dimou</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Parallel rdf generation from heterogeneous big data</article-title>
          .
          <source>In: Proceedings of the International Workshop on Semantic Big Data</source>
          . pp.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          (
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>