<!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>Smart Trip Alternatives for the Curious</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Damien Graux</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pierre Geneves</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nabil Layada</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Inria</institution>
          ,
          <addr-line>Cnrs, lig and Univ. Grenoble Alpes</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>When searching for ights, current systems often suggest routes involving waiting times at stopovers. There might exist alternative routes which are more attractive from a touristic perspective because their duration is not necessarily much longer while o ering enough time in an appropriate place. Choosing among such alternatives requires additional planning e orts to make sure that e.g. points of interest can conveniently be reached in the allowed time frame. We present a system that automatically computes smart trip alternatives between any two cities. To do so, it searches points of interest in large semantic datasets considering the set of accessible areas around each possible layover. It then elects feasible alternatives and displays their di erences with respect to the default trip.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Our system leverages the increasing availability of open city transportation
data (in e.g. the General Transit Feed Speci cation (gtfs) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]), and combines
them with ight information as well with external data sources for the selection
of e.g. particularly remarkable points of interests. In Section 2, we present how
we designed our system around a scalable infrastructure for supporting the mass
of worldwide gtfs information (i.e. several csv les providing routes, schedules,
stations stop times. . . ), how we leverage various data sources in heterogeneous
formats (e.g. rdf, json, xml, gtfs, etc.) for semantic enrichment of
information, and how we encode constraints and heuristics for the e cient selection of
smart trip options. In Section 3 we illustrate the use of our novel system in a
real-world setting before reviewing related works and concluding in Section 4.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Overall System Architecture</title>
      <p>
        The global architecture of our system is shown in Figure 1. It consists of a
lightweight client-side part in which users indicate a city of origin and a city of
destination and which also displays results, and a backend part with an entry
point called master. As shown in Figure 1, the master executes three di erent
processes A,B and C. Process A corresponds to a usual ight nder: it returns
trips sorted by simple criteria such as the number of connections and the transit
time (by default). Process C queries the Open Street Map (osm) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] tiles servers
to fetch cartographic data for drawing resulting routes on a map. Processes
A and C basically correspond to what can be found in common ight nding
applications. The novelty of our idea and our system resides in process B, which
is in charge of computing recommendations by reasoning on enriched data.
Design for scalability. In the backend we distinguish datasets according to their
sizes. For performance reasons, when datasets t in main-memory of a single
machine, we use in-memory engines (for e.g. the ight database) whereas city
transit datasets (expressed using gtfs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]) and large rdf datasets are distributed
across a cluster of nodes. Speci cally, we use a gtfs store implemented on top of
the Apache Spark framework2 for the purpose of supporting a large number of
gtfs datasets of moderate size3. When rdf datasets used in the data enrichment
process (B3) are large, we rely on our sparqlgx implementation introduced in
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for e ciently evaluating sparql queries on distributed rdf datasets.
      </p>
      <p>To obtain smart trip alternatives for a transit between two airports A1
and A2, process B performs reasoning on aggregated data coming from
various sources thanks to the four sub-processes B1, B2, B3, and B4 (Figure 1). The
analyzer rst queries the ight nder (B1) to gather possible paths (without
cycles) taking o from A1 and landing at A2. Then, it applies lters to this set
of paths according to two customizable usecases: (1) it keeps paths having at
most a X-hour connection; (2) it only considers paths having at least a
connection longer than Y hours; where X and Y are user-de ned. Moreover, it always
tries to avoid connections requiring to spend one night in a hotel somewhere on
Earth and rather promotes night in aircrafts, by default. Knowing the possible
connections, the analyzer asks the gtfs store (B2) to nd among the city
transit datasets all the accessible areas from each intermediate airport. This concept
of accessibility depends on the usecase i.e. the gtfs store only considers areas
from which one can go and return in less than M minutes, where M is equal to
the minimum between one quarter of the connection time and 2 hours. A set of
accessible stations (using public transport) is hence available for each possible
connection. To enrich user experience, the analyzer rst seeks points of interest
(pois) in these areas using sparql queries evaluated on DBpedia4, and then
further queries other rdf databases for semantic enrichment (B3), e.g. with
local restaurants. Then, in (B4) the analyzer fetches ranks and reviews of other
users concerning all accessible pois. All these considerations are used to obtain
an overall score for each area; the analyzer can thereby choose among the best
retained ones using a (customizable) score function.
2 http://spark.apache.org
3 For example, gtfs data for the Los Angeles city area represent 20GB (due to seventy
million direct paths between all regional stations).
4 http://dbpedia.org
The typical scenario consists in using our processing pipeline in order to obtain
smart trip alternatives using various data sources: gtfs schedules, osm tiles
and DBpedia rdf data. One interest of such a tool relies on the fact that users
can nd alternatives using real data e.g. the scheduling grids are the ones used
each day by o cial transit agencies and semantic data comes from DBpedia.
For instance it is possible to review suggestions of trip alternatives to come to
the conference. Users can search for trip alternatives passing as argument two
airports and two allowed time lapses for connections. For instance, from Paris
in France (CDG) to Honolulu in Hawaii USA (HNL) allowing 3 to 5 hours and
more than 8 hours, the pipeline (Figure 1) might propose at rst to pass through
San Francisco CA (as a conventional \fastest trip nder") since it is the fastest
trip available. Then, it considers e.g. the Naritasan Shinsho-ji Temple (20 min.
far from Tokyo) and also Venice Beach (40 min. far from Los Angeles).
4</p>
    </sec>
    <sec id="sec-3">
      <title>Related Work and Conclusion</title>
      <p>
        There exists many trip planning systems such as Google Maps and Rome2Rio.
These systems allow to obtain routes that satisfy simple criteria such as shortest
path, shortest duration, cheapest price, and combinations of them. Compared to
these systems, we bring an additional semantic layer that allows our system to
suggest smart alternatives, e.g. alternatives that do not necessarily satisfy the
initial criteria entered by the user, but that will be preferred in the end. Closest to
our approach are the works on automatic construction of travel itineraries [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]
and interactive itinerary planning [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Compared to these approaches, we notably
leverage the use of gtfs big data [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for checking feasibility of the itinerary by
public transportation. Furthermore, an advantage of our system compared with
[
        <xref ref-type="bibr" rid="ref2 ref6">2, 6</xref>
        ] is to provide alternatives at booking time. The user becomes active in the
layover decision process deciding how and where to spend its time budget.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tung</surname>
            ,
            <given-names>A.K.</given-names>
          </string-name>
          :
          <article-title>Automatic itinerary planning for traveling services</article-title>
          .
          <source>TKDE</source>
          <volume>26</volume>
          (
          <issue>3</issue>
          ),
          <volume>514</volume>
          {
          <fpage>527</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>De Choudhury</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feldman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amer-Yahia</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Golbandi</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lempel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Automatic construction of travel itineraries using social breadcrumbs</article-title>
          .
          <source>In: ACM { Hypertext and Hypermedia</source>
          . pp.
          <volume>35</volume>
          {
          <fpage>44</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Google: GTFS (
          <year>September 2006</year>
          ), https://developers.google.com/transit/gtfs/
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Graux</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jachiet</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Geneves</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Layada, N.:
          <article-title>SPARQLGX: A distributed RDF store mapping SPARQL to Spark</article-title>
          .
          <source>ISWC</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Haklay</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Openstreetmap: User-generated street maps</article-title>
          .
          <source>Pervasive Computing, IEEE</source>
          <volume>7</volume>
          (
          <issue>4</issue>
          ),
          <volume>12</volume>
          {
          <fpage>18</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Roy</surname>
            ,
            <given-names>S.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Das</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amer-Yahia</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Interactive itinerary planning</article-title>
          .
          <source>In: ICDE</source>
          . pp.
          <volume>15</volume>
          {
          <fpage>26</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>