<!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>A system to automatize the deployment of data in Linked Data Platforms</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Noorani Bakerally</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antoine Zimmermann</string-name>
          <email>antoine.zimmermanng@emse.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Univ Lyon, IMT Mines Saint-Etienne, CNRS, Laboratoire Hubert Curien UMR 5516</institution>
          ,
          <addr-line>F-42023 Saint-Etienne</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The Linked Data Platform (LDP) 1.0 is the W3C Recommendation for exposing linked data in a RESTful manner. Current solutions for LDP exist but provide no support for deploying data from external sources in LDPs. In this paper, we address this issue by providing a generic LDP resource generator which can automatize data deployment both from RDF and heterogeneous sources into LDP repositories. We demonstrate the effectiveness and exibility of this tool using concrete cases of deploying real datasets in an LDP.</p>
      </abstract>
      <kwd-group>
        <kwd>RDF</kwd>
        <kwd>Linked Data</kwd>
        <kwd>Linked Data Platform</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The LDP standard [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] has been a step towards standardizing RESTful access to
linked data. It speci es the use of HTTP to access, update, create and delete
resources from servers which expose their resources as linked data. Linked data
platforms complying with the LDP standard, which we refer to as LDPs, can
be useful in numerous context, specially in open data where there is a need to
facilitate sharing and exploitation of heterogeneous data sources by providing
a homogeneous view and access to them via an LDP. However, deploying data
in LDPs is still complex. LDPs are data-driven systems and deploying them
involves both data and system deployment. Current LDP solutions address only
the latter. There is currently no support for deploying data in LDP which we
believe is the reason for the rare adoption of the LDP standard in spite of the
numerous LDP solutions (cf. Sec. 2). To deploy data in LDP repositories, manual
development of LDP resource generators is required to transform data resources
into LDP resources and materialize them in LDP repositories. The development
of LDP resource generators involves two main phases: design and
implementation. During the design phase, design decisions related to LDP design are taken.
The design of LDP mainly include aspects such as LDP resources IRI, their
content and organization in terms of LDP containers. During the implementation
phase, these decisions are encoded in the LDP resource generator. While
encoding the design decisions, if they are tightly coupled with the implementation, it
may be difficult both to maintain and reuse the design. To address these issues,
we propose a generic LDP resource generator, which we refer to as an LDPizer,
to automatize the deployment of RDF and heterogeneous data sources in LDPs
using a design document as input. In the rest of this paper, we discuss related
work in Sec. 2, in Sec. 3 we describe the LDPization process and nally in Sec. 4,
we demonstrate the effectiveness and exibility of the LDPizer in deploying real
datasets on an LDP.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>The LDP standard provides a set of rules for read-write linked data via HTTP.
Data resources exposed via LDPs are referred as LDP Resources (LDPR). There
are two main types of LDPRs: LDP RDF Source (LDP-RS) and LDP Non-RDF
Source (LDP-NR). The state of LDP-RS is fully represented in RDF while that of
LDP-NR is not represented in RDF. An LDPC is a special type of LDP-RS which
represents a collection of LDPRs. Current LDP solutions exist and our analysis
of them is restricted to those mentioned in the LDP implementation
conformance report1 which shows their degree of conformance to the LDP standard.
We categorize these solutions into LDPR management systems (Callimachus,
Carbon LDP, Fedora Commons, Apache Marmotta, Virtuoso, gold, rww-play)
and LDP frameworks (Eclipse Lyo, LDP4j). LDP management system can be
seen as a repository for LDPRs on top of which CRUD operations, adhering to
the LDP standard, are allowed through HTTP methods. LDP frameworks are
solutions which can be used to build custom applications which implement LDP
interactions. Based on our analysis, there are no LDP solutions which provide
support for directly deploying data to LDP repositories.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Generic LDPization Process</title>
      <p>Design Document
(xml,json, csv, ..)
1 https://www.w3.org/2012/ldp/hg/tests/reports/ldp.html
2 https://github.com/noorbakerally/LDPizer</p>
      <sec id="sec-3-1">
        <title>DataSource 1..*</title>
        <p>1..*
ResourceMap 0..*
1..*</p>
      </sec>
      <sec id="sec-3-2">
        <title>NonRDFSourceMap 0..*</title>
        <p>RDFSourceMap
0..*</p>
        <p>0..*
ContainerMap
it allows the decoupling of the design from the implementation, thus enhancing
the maintainability and reusability of the design. The design document contains
a declarative description of LDP design aspects such as organization of resources
in terms of LDPCs, LDPR IRIs or LDPR content. We provide a vocabulary3 to
declaratively describe the design. A simpli ed abstract model of the vocabulary
is shown in Fig. 2.</p>
        <p>
          The core of this model is the ResourceMap which can have one or more
DataSources. The DataSoure of a ResourceMap can be a an RDF or
nonRDF data source. In the latter case, the lifting rule for the data must be provided.
Currently, the LDPizer support only lifting rules expressed in SPARQL
Generate [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] as it is the only RDFizer which provides a Web API4. A ResourceMap
has two main attributes, the resourceQuery and an optional graphQuery.
For a particular ResourceMap, the LDPizer uses its resourceQuery to
select a set of resources from its DataSources. Then using its graphQuery, the
LDPizer generates an RDF graph for each of the selected resources. For each
selected resource, the LDPizer creates an LDPR. If the ResourceMap is related
to a ContainerMap or RDFSourceMap, the LDPR is an LDPC or LDP-RS
else it is an LDP-NR. Two main aspects of an LDPR is its IRI and content. Per
the LDP standard, when creating an LDPR, a slug [1, §9.7] may be provided to
indicate some preference about the resource IRI but the nal IRI is generated
by the LDP. Therefore, a slug template can be provided. When processing the
slug template of an LDPR, the IRI and graph (if any) of the resource for which
the LDPR has been generated are used as input. The slug template can contain
SPARQL expressions. For the content of the LDPR, if the LDPR is an LDPC
or LDP-RS, its content is the RDF graph of the resource for which it is being
generated. In case of LDP-NR, its content is the content of its corresponding
resource which the LDPizer downloads using the URL of the resource. For each
LDPR, the LDPizer uses its IRI and content, creates a POST request and sends
it to the LDP where the LDPR is materialized. For the content, if the LDPR is
an LDP-RS, its content is the graph of the resource for which the LDP-RS was
generated. For LDP-NR, its content is the content of the resource at its URL for
which the LDP-NR was generated. Finally, for each LDPR, the LDPizer uses its
slug and content, creates a POST request and sends it to the LDP where the
LDPR is materialized.
3 https://github.com/noorbakerally/LDPDesignVocabulary/blob/master/vocabulary.owl
4 http://ci.emse.fr/sparql-generate/language-api.html
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Demonstration Scenario</title>
      <p>
        The objective of our demonstration is to show the effectiveness and genericity
of the LDPizer in deploying both RDF and heterogeneous data on LDPs and
also the reusability of the design document when the data sources use the same
vocabularies. In our demonstration, we use Apache Marmotta as the LDP. We
show the effectiveness of the LDPizer by using a design document5 to deploy the
data catalog of Paris Open data Portal 6 on an LDP. Then, to show the
maintainability and reusability of that design document, we only change its data sources
and then use it7 for deploying a different data catalog from Toulouse Open data
Portal 8. This is possible because both Paris and Toulouse use the DCAT
standard [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to describe their catalogs. We demonstrate the genericity of the LDPizer
by deploying a different dataset using a different design document from the rst
ones. For this, we use an RDF graph9 extracted from LinkGeoData10 using a
SPARQL CONSTRUCT query11 which relates to geographical places in Paris.
Finally, we illustrate that the LDPizer can also deploy non-RDF data by using
a design document12 to deploy the CSV dataset13 for parking spots in Paris
streets.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Future Work</title>
      <p>Several improvements can be envisaged as we presented only a preliminary
version of the design vocabulary and LDPizer. There are several aspects such as
entailment regimes, blank nodes or external resources which we intend to
consider in future versions.</p>
      <p>Acknowledgments This work is supported by grant ANR-14-CE24-0029 from
Agence Nationale de la Recherche for project OpenSensingCity.
5 https://github.com/noorbakerally/ISWC2017Demo/blob/master/ParisCatalog.dd.ttl
6 https://opendata.paris.fr/
7 https://github.com/noorbakerally/ISWC2017Demo/blob/master/ToulouseCatalog.dd.ttl
8 https://data.toulouse-metropole.fr
9 https://github.com/noorbakerally/ISWC2017Demo/blob/master/ParisGeo.ttl
10 http://linkedgeodata.org/
11 https://github.com/noorbakerally/ISWC2017Demo/blob/master/ParisGeo.rq
12 https://github.com/noorbakerally/ISWC2017Demo/blob/master/ParisParkingCSVJSon.dd.ttl
13 https://opendata.paris.fr/explore/dataset/stationnement-sur-voie-publique-emprises/</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.</given-names>
            <surname>Gregorio</surname>
          </string-name>
          and B. de hOra.
          <source>The Atom Publishing Protocol. Technical report, IETF</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Lefrancois</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Bakerally</surname>
          </string-name>
          .
          <article-title>A SPARQL extension for generating rdf from heterogeneous formats</article-title>
          .
          <source>In 14th ESWC</source>
          <year>2017</year>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>F.</given-names>
            <surname>Maali</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Erickson</surname>
          </string-name>
          .
          <article-title>Data Catalog Vocabulary (DCAT)</article-title>
          .
          <source>Technical report, W3C, January 16</source>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>S.</given-names>
            <surname>Speicher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Arwe</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Malhotra</surname>
          </string-name>
          .
          <source>Linked Data Platform 1.0. Technical report, W3C, February 26</source>
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>