<!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>Versioned Triple Pattern Fragments: A Low-cost Linked Data Interface Feature for Web Archives</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ruben Taelman</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>Ruben Verborgh</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Erik Mannens</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ghent University - imec - IDLab</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Linked Datasets typically evolve over time because triples can be removed from or added to datasets, which results in different dataset versions. While most attention is typically given to the latest dataset version, a lot of useful information is still present in previous versions and its historical evolution. In order to make this historical information queryable at Web scale, a low-cost interface is required that provides access to different dataset versions. In this paper, we add a versioning feature to the existing Triple Pattern Fragments interface for queries at, between and for versions, with an accompanying vocabulary for describing the results, metadata and hypermedia controls. This interface feature is an important step into the direction of making versioned datasets queryable on the Web, with a low publication cost and effort.</p>
      </abstract>
      <kwd-group>
        <kwd>Linked Data</kwd>
        <kwd>versioning</kwd>
        <kwd>Triple Pattern Fragments</kwd>
        <kwd>Linked Data Fragments</kwd>
        <kwd>sparql</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        rdf [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and sparql [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are methods for respectively representing and querying Linked
Data. The rdf data model is atemporal, as rdf itself does not define a mechanism to
annotate information with dates. In practice, Linked Datasets can, however, be dynamic
on different levels [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], with dataset, schema, and/or instance-level changes. These
changes open up new data analysis possibilities, such as looking up data at certain points
in time, requesting changes over time, or querying for times this data was valid. These
querying methods are useful for example for analyzing concept drift or the management
of ontology evolution.
      </p>
      <p>
        While most data publishers currently only provide queryable access to the latest
version of their datasets, data dumps of previous dataset versions are also often made
available, such as the DBpedia dataset [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A survey on archiving Linked Open Data [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
shows that there is a need for querying over dynamic Linked Datasets at, between and for
different versions.
      </p>
      <p>
        Temporal sparql language extensions [
        <xref ref-type="bibr" rid="ref11 ref7">7, 11</xref>
        ] at query endpoints would enable such
queries, but these endpoints would at least have the same complexity as sparql, making
it costly to make these endpoints public [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. In order to make this version querying
possible at Web-scale, a low-cost solution such as the Triple Pattern Fragments [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] (tpf)
would be ideal. By itself, the tpf interface is, just like the rdf data model, atemporal.
In this paper, we introduce Versioned Triple Pattern Fragments (vtpf), a Web API
feature [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] that provides hypermedia controls for 3 versioning queries types. For this
we also introduce a new version vocabulary, which is graph-based and allows versions,
changesets and versionsets to be represented.
      </p>
      <p>In the next section, we introduce the requirements of the vtpf interface, after which
we present related work in Section 3. In Sections 4 and 5, we respectively introduce the
version vocabulary and the vtpf interface. Finally, in Section 6, the conclusions and
future work are discussed.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Requirements</title>
      <p>
        In order to enable queries over different dataset versions using the tpf framework, we
introduced the following three requirements in previous work [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]:
1. An extension of the tpf interface for versioning query types.
2. A storage solution supporting the query atoms.
3. A tpf client that is able to consume the tpf interface extension.
      </p>
      <p>
        In this work, we introduce vtpf as a solution for the first task. We design vtpf as an
interface feature rather than a separate api, in order to maximize interface compatibility
and reusability [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This means that the tpf interface remains as it is, such that regular
tpf clients can continue to access it as any other tpf interface. By adding the vtpf
feature, we merely provide extra possibilities for vtpf-supporting clients, which can be
ignored by others. At any later stage, new or existing interface features can be added
(such as other query types [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or metadata [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]), while maintaining compatibility with
tpf and vtpf clients. This multi-dimensional interface extensibility works because the
interface explicitly describes its interaction and functionality through in-band hypermedia
controls [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>We list the following requirements for this interface, in order to make it version-aware
and self-descriptive:
1. api support for triple pattern queries on versions, between, versions and for versions
2. html and rdf controls for the three versioning query types, allowing humans and
machines to consume data.
3. html and rdf metadata to provide information about dataset versions, with links to
other relevant versions.
4. html and rdf forms as hypermedia controls for automatic discoverability of the
interface.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Triple Pattern Fragments [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] (tpf) is a Linked Data interface that provides access to
Linked Datasets using triple pattern queries. By restricting access to these simple queries,
the publication cost of datasets using the tpf interface is significantly reduced when
compared to sparql query endpoints [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. As part of this framework, a client-side sparql
engine has been developed that is able to consume data from tpf interfaces.
      </p>
      <p>
        The tpf interface is based on the rest principles and makes the api browsable
for machines. This is done by exposing hypermedia controls that provide declarative
instructions to clients on how they can consume data from this interface, similar to
how humans can understand and use visual html forms. tpf uses the Hydra Core
Vocabulary [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] to represent these self-descriptive controls, by providing a link template
explaining how triple patterns can be queried, as can be seen in Listing 1.1. Furthermore,
each tpf response contains relevant metadata about the dataset and the data fragment,
including an estimate of the total number of triples for that triple pattern.
      </p>
      <p>
        In previous work [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], we explored the possibilities for adding versioning support to
the tpf interface for different query atoms on storage, interface and client-level. In this
paper, we focus on the following query atoms [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] related to versioning:
– Version Materialization (vm) queries data at a single version.
– Delta Materialization (dm) queries differences between two versions.
– Version Queries (vq) annotate query results with versions for which they are valid.
These three query atoms correspond to realistic versioning queries, and each of them can
be used to evaluate other, and more complex versioning queries [
        <xref ref-type="bibr" rid="ref14 ref5">5, 14</xref>
        ].
      </p>
      <p>
        Two tpf extensions exist that add a kind of versioning feature to the interface. The
tpf Memento extension [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] supports vm queries. It does this based on the Memento
protocol [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], which allows clients to select versions of http resources based on content
negotiation. tpf-qs [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is an approach that supports vq queries by annotating triples
with time intervals. These two approaches are both not generic enough to support vm, dm
and vq queries. Furthermore, they both do not introduce version-oriented hypermedia
controls, which is required for generic version feature discovery.
      </p>
      <p>
        While vm queries return a regular list of triples, dm and vq return triples with
annotations. For dm queries, a method for representating deltas between two versions
is required. A theoretical diff ontology [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] was explored for representing rdf graph
deltas, which directly links difference graphs to other graphs. As this is only a theoretical
ontology, no practicly usable implementation exists. The Talis Changeset vocabulary [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
uses triple-level changesets that can contain additions and deletions, which requires
reification and therefore has semantical issues. vq queries return a combined view over
all versions, and annotate each triple with a list of versions, which is related to how
tpf-qs [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] compares different strategies for annotating triples with timestamps.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Vocabulary</title>
      <p>As stated in our requirements, the vtpf interface must expose hypermedia controls
and version metadata in its rdf responses. Furthermore, the three query atoms require
different result structures. For these hypermedia controls, metadata and result annotation,
we introduce the version vocabulary, inspired by the existing, but limited vocabularies
discussed in Section 3. This vocabulary is available at http://w3id.org/version/
ontology, for which we use the ver: prefix.
4
ver:versionSetContains
rdf:subClassOf
void:Dataset
ver:Version
ver:beforeVersion
ver:afterVersion
ver:latestVersion
ver:firstVersion
ver:changeSetStart
ver:changeSetEnd</p>
      <p>rdf:subClassOf ver:ChangeSetAdditions
ver:VersionSet
ver:ChangeSet</p>
      <p>rdf:subClassOf ver:ChangeSetDeletions</p>
    </sec>
    <sec id="sec-5">
      <title>5 Interface</title>
      <p>In this section, we introduce the three query atoms within the vtpf interface. We finish
the section with the introduction of a live vtpf interface.</p>
      <p>In the following subsections, we introduce new html and rdf forms for these query
atoms, together with methods for representing their results. These three new forms are
added to the existing tpf interface as an extension. Both the html and rdf forms have
toggles for selecting the query atom, in html this is represented as a radio button and in
rdf this is done using a versionType parameter. In order to remain backwards-compatible
for clients that only support the regular tpf interface, we keep the original tpf form, but
internally transform it to a vm query that selects triples against the latest dataset version.</p>
      <p>
        As discussed in previous work [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], each query atom has a certain complexity when it
is evaluated using a certain storage policy. Depending on this storage policy, the publisher
may want to restrict the possible query atoms that are possible through the vtpf interface.
For example, a strategy with individual copies per version may be efficient for vm, but
slow for dm. For the remainder of this paper, we consider a storage solution that is able
to handle the three query atoms efficiently for at least triple patterns, and we therefore
enable the three query atoms at the interface by-default.
5.1
      </p>
      <sec id="sec-5-1">
        <title>Version Materialized</title>
        <p>In order to enable triple pattern queries against specific dataset versions (vm), we added
a version parameter to both the rdf and html forms.</p>
        <p>Fig. 1 shows an example of the html form for querying triples within a certain version.
This allows clients to select a version to query in, given a list of all available versions.</p>
        <p>
          Listing 1.2 shows an equivalent hypermedia control for this using the Hydra Core
Vocabulary [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. This is almost equal to the existing tpf control where only a version
property was added, which can be filled in by clients. Listing 1.3 shows additional
metadata that is added to the results. This metadata allows clients to determine the version
of the dataset that is currently being queried, indicated using ver:relatedVersion.
Furthermore, the total number of currently available versions is indicated. Finally, links
to other versions are indicated, which allows clients to determine next, previous, first and
last versions of datasets, and improves the discoverability of other versions.
5.2
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>Delta Materialized</title>
        <p>The second main versioned query atom is for querying the differences between two
versions (dm). For this, we add two parameters to the rdf and html form, for respectively
selecting the start and end version.</p>
        <p>Fig. 2 shows the html form for selecting the start and end version. Each triple is now
annotated with a green “+” or a red minus “-”. “+” indicates that this triple was added
somewhere inbetween the start and end versions. “-” indicates the opposite, if that triple
was removed.</p>
        <p>In Listing 1.4, the equivalent hypermedia controls are shown. Listing 1.5 shows
an example of a dm query result. For dm queries, each triple is contained in a ver:
ChangeSetAdditions or ver:ChangeSetDeletions graph, and respectively indicate if
the triples are additions or deletions for the given version range. These two graphs are
annotated with this version range in the metadata graph, as shown in Listing 1.6.
5.3</p>
      </sec>
      <sec id="sec-5-3">
        <title>Version Query</title>
        <p>Finally, the vq query atom selects triples over all versions, and annotates each triple with
the versions in which they are present. This query atom requires no additional parameter
to the rdf and html form, it only needs a flag indicating the query atom.</p>
        <p>The html view for this query atom is shown in Fig. 3 in which all triples are annotated
with their list of versions. Listing 1.8 shows an example of rdf results for vq queries. All
triples are annotated with a versionset graph. These versionset graphs are annotated with
the versions for which they are applicable, as can be seen in Listing 1.9.
&lt;http://fragments.dbpedia.org/2014#metadata&gt; {
&lt;http://fragments.dbpedia.org/2014#dataset&gt; hydra:search [
hydra:template "http://fragments.dbpedia.org/2014{?s,p,o}";
hydra:variableRepresentation hydra:ExplicitRepresentation;
hydra:mapping [ hydra:variable "s"; hydra:property rdf:subject ],
[ hydra:variable "p"; hydra:property rdf:predicate ],
[ hydra:variable "o"; hydra:property rdf:object ]</p>
        <sec id="sec-5-3-1">
          <title>Listing 1.1: tpf query form using the Hydra Core Vocabulary.</title>
          <p>&lt;http://versioned.linkeddatafragments.org/bear#metadata&gt; {
&lt;http://versioned.linkeddatafragments.org/bear#dataset&gt; hydra:search [
hydra:template "http://versioned.linkeddatafragments.org/bear?versionType=</p>
          <p>VersionMaterialized{&amp;s,p,o,v}";
hydra:variableRepresentation hydra:ExplicitRepresentation;
hydra:mapping [ hydra:variable "s"; hydra:property rdf:subject ],
[ hydra:variable "p"; hydra:property rdf:predicate ],
[ hydra:variable "o"; hydra:property rdf:object ],
[ hydra:variable "v"; hydra:property ver:relatedVersion ]</p>
          <p>Listing 1.2: The vm query rdf form for triple triples in a single version.</p>
          <p>Listing 1.3: vm query result metadata that contains links to other versions.
&lt;http://versioned.linkeddatafragments.org/bear#metadata&gt; {
&lt;http://versioned.linkeddatafragments.org/bear#dataset&gt; hydra:search [
hydra:template "http://versioned.linkeddatafragments.org/bear?versionType=</p>
          <p>DeltaMaterialized{&amp;s,p,o,s,e}";
hydra:variableRepresentation hydra:ExplicitRepresentation;
hydra:mapping [ hydra:variable "s"; hydra:property rdf:subject ],
[ hydra:variable "p"; hydra:property rdf:predicate ],
[ hydra:variable "o"; hydra:property rdf:object ],
[ hydra:variable "s"; hydra:property ver:changeSetStart ],
[ hydra:variable "e"; hydra:property ver:changeSetEnd ]
}
].</p>
          <p>Listing 1.4: The dm query rdf form for triple differences over two versions.
_:changeSetDeletions {
ol:node0
a &lt;http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing&gt;;
a &lt;http://xmlns.com/foaf/0.1/OnlineAccount&gt;;
&lt;http://xmlns.com/foaf/0.1/accountName&gt; "mystylequicktip";
&lt;http://xmlns.com/foaf/0.1/accountProfilePage&gt; &lt;http://twitter.com/
mystylequicktip&gt;.
}
_:changeSetAdditions {
ol:node0
&lt;http://www.w3.org/2003/01/geo/wgs84_pos#lat&gt; "49.0000000";
&lt;http://www.w3.org/2003/01/geo/wgs84_pos#long&gt; "32.0000000".</p>
        </sec>
        <sec id="sec-5-3-2">
          <title>Listing 1.5: dm query rdf results in changesets.</title>
          <p>}
}
http://versioned.linkeddatafragments.org/bear#metadata&gt; {
_:changeSetAdditions a ver:ChangeSetAdditions;
ver:changeSetStart &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=0&gt;;
ver:changeSetEnd &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=9&gt;.
_:changeSetDeletions a ver:ChangeSetDeletions;
ver:changeSetStart &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=0&gt;;
ver:changeSetEnd &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=9&gt;.
Listing 1.6: dm query rdf result metadata with changeset annotations.
&lt;http://versioned.linkeddatafragments.org/bear#metadata&gt; {
&lt;http://versioned.linkeddatafragments.org/bear#dataset&gt; hydra:search [
hydra:template "http://versioned.linkeddatafragments.org/bear?versionType=</p>
          <p>Version{&amp;s,p,o}";
hydra:variableRepresentation hydra:ExplicitRepresentation;
hydra:mapping [ hydra:variable "s"; hydra:property rdf:subject ],
[ hydra:variable "p"; hydra:property rdf:predicate ],
[ hydra:variable "o"; hydra:property rdf:object ]</p>
          <p>Listing 1.7: The vq query rdf form for version-annotated triples.
_:versionSet0 {
ol:node0 a &lt;http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing&gt;
&lt;http://www.w3.org/2003/01/geo/wgs84_pos#lat&gt; "49.0000000";
&lt;http://www.w3.org/2003/01/geo/wgs84_pos#long&gt; "32.0000000".
}
}
}
_:versionSet1 {
ol:node0 a &lt;http://xmlns.com/foaf/0.1/OnlineAccount&gt;;
&lt;http://xmlns.com/foaf/0.1/accountName&gt; "mystylequicktip";
&lt;http://xmlns.com/foaf/0.1/accountProfilePage&gt; &lt;http://twitter.com/
mystylequicktip&gt;.</p>
          <p>Listing 1.8: vq query rdf results in versionsets.
&lt;http://versioned.linkeddatafragments.org/bear#metadata&gt; {
_:versionSet0 a ver:VersionSet;
ver:versionSetContains &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=0&gt;.
_:versionSet1 a ver:VersionSet;
ver:versionSetContains &lt;http://versioned.linkeddatafragments.org/bear?
versionType=VersionMaterialized&amp;version=9&gt;.</p>
          <p>Listing 1.9: vq query rdf result metadata with versionset annotations.
5.4</p>
        </sec>
      </sec>
      <sec id="sec-5-4">
        <title>Live Demo</title>
        <p>
          As an example usage of the vtpf interface, we set up a live entrypoint at http:
//versioned.linkeddatafragments.org/bear. This interface exposes access to the
first ten versions of the rdf archive provided by the bear benchmark [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], which consists
of triples compiled from the Dynamic Linked Data Observatory1. These first ten versions
contain more than 72 million unique triples, with approximately 30 million triples per
version. As backend storage solution we use ostrich2, which supports the three query
atoms for triple patterns.
6
        </p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions</title>
      <p>In this paper, we introduced an interface for exposing query access to different versions
of a dataset for triples at, between and for different different versions. This fulfills our
first api requirement. For requirements 2 and 3, we provide html and rdf controls and
metadata for allowing both humans and machines to understand the interface and the
data. Finally, for requirement 4, we used hypermedia controls to allow machines to
automatically discover how to use these query methods. As vtpf is a minimal extension
to the existing tpf interface, this allows data owners to expose their different dataset
versions on the Web with a low cost. This is a solution to the first task for making rdf
queryable on the Web with a low publication cost.</p>
      <p>
        In future work, we intend to provide solutions for the other tasks [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] for making
different dataset versions possible using the tpf framework. We will extend the existing
tpf client so that it is able to understand and consume data from the vtpf interface
extension, for the three query atoms. For this, a variant of the sparql query language will
be needed, such as t-sparql [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or sparql-st [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Furthermore, our storage solution
that is used as a backend to this vtpf interface will be further developed and investigated.
Finally, this interface, together with the solutions for the other tasks will be evaluated, so
that the publication and consumption cost with the vtpf approach can be determined.
      </p>
      <p>An interface like vtpf lowers the barrier for data owners to publish different versions
of their data, which will lead to the availability of more Linked Datasets at different
versions over the Web. This will open up a new world of querying possibilities at,
between, and for versions for domains that require such access, such as the analysis of
concept drift.
1 http://swse.deri.org/dyldo/
2 ostrich is a work-in-progress and will be introduced as a triple store with versioning support in
future work.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kobilarov</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ives</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>DBpedia: A nucleus for a Web of open data</article-title>
          .
          <source>In: The semantic web</source>
          , pp.
          <fpage>722</fpage>
          -
          <lpage>735</lpage>
          . Springer (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Connolly</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Delta: an ontology for the distribution of differences between rdf graphs</article-title>
          . World Wide Web, http://www.w3.org/DesignIssues/Diff 4(
          <issue>3</issue>
          ),
          <fpage>4</fpage>
          -
          <lpage>3</lpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cyganiak</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanthaler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>: rdf 1.1: Concepts and abstract syntax</article-title>
          .
          <source>Recommendation, W3C (Feb</source>
          <year>2014</year>
          ), http://www.w3.org/TR/2014/REC-rdf11
          <string-name>
            <surname>-</surname>
          </string-name>
          concepts-20140225/
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Feigenbaum</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Todd Williams</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Grant</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Torres</surname>
          </string-name>
          , E.:
          <article-title>sparql 1.1 protocol</article-title>
          . Rec.,
          <source>W3C (Mar</source>
          <year>2013</year>
          ), http://www.w3.org/TR/2013/REC-sparql11
          <string-name>
            <surname>-</surname>
          </string-name>
          protocol-20130321/
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Fernández</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knuth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Evaluating query and storage strategies for rdf archives</article-title>
          .
          <source>In: Proceedings of the 12th International Conference on Semantic Systems</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Fielding</surname>
          </string-name>
          , R.T.:
          <article-title>rest apis must be hypertext-driven (</article-title>
          <year>Oct 2008</year>
          ), http://roy.gbiv.com/ untangled/2008/rest
          <article-title>-apis-must-be-hypertext-driven</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Grandi</surname>
          </string-name>
          , F.:
          <article-title>t-sparql: A TSQL2-like temporal query language for rdf</article-title>
          .
          <source>In: ADBIS (Local Proceedings)</source>
          . pp.
          <fpage>21</fpage>
          -
          <lpage>30</lpage>
          .
          <string-name>
            <surname>Citeseer</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seaborne</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prud</surname>
          </string-name>
          'hommeaux, E.:
          <article-title>sparql 1.1 query language</article-title>
          . Recommendation,
          <source>W3C (Mar</source>
          <year>2013</year>
          ), http://www.w3.org/TR/2013/REC-sparql11
          <string-name>
            <surname>-</surname>
          </string-name>
          query-20130321/
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Lanthaler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gütl</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Hydra: A vocabulary for hypermedia-driven Web apis</article-title>
          .
          <source>In: Proceedings of the 6th Workshop on Linked Data on the Web (May</source>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Meimaris</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papastefanatos</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Viglas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stavrakas</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pateritsas</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Anagnostopoulos</surname>
            ,
            <given-names>I.:</given-names>
          </string-name>
          <article-title>A query language for multi-version data Web archives</article-title>
          .
          <source>Expert Systems</source>
          <volume>33</volume>
          (
          <issue>4</issue>
          ),
          <fpage>383</fpage>
          -
          <lpage>404</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Perry</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jain</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A.P.</given-names>
          </string-name>
          <article-title>: sparql-st: Extending sparql to support spatiotemporal queries</article-title>
          . In:
          <article-title>Geospatial semantics and the semantic web</article-title>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>86</lpage>
          . Springer (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Van de Sompel, H.,
          <string-name>
            <surname>Nelson</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanderson</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balakireva</surname>
            ,
            <given-names>L.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ainsworth</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shankar</surname>
          </string-name>
          , H.:
          <article-title>Memento: Time travel for the Web</article-title>
          .
          <source>arXiv preprint arXiv:0911.1112</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colpaert</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mannens</surname>
          </string-name>
          , E.:
          <article-title>Continuous client-side query evaluation over dynamic Linked Data</article-title>
          . In: The Semantic Web:
          <article-title>ESWC 2016 Satellite Events</article-title>
          (May
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Taelman</surname>
            ,
            <given-names>R.</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>Exposing rdf archives using Triple Pattern Fragments</article-title>
          .
          <source>In: Proceedings of the 20th International Conference on Knowledge Engineering and Knowledge Management: Posters and Demos (Nov</source>
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Tunnicliffe</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Davis</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Changeset vocabulary (</article-title>
          <year>2005</year>
          ), http://vocab.org/changeset/
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Umbrich</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hausenblas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hogan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards dataset dynamics: Change frequency of Linked Open Data sources</article-title>
          .
          <source>3rd International Workshop on Linked Data on the Web (LDOW)</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Van Herwegen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Vocht</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mannens</surname>
          </string-name>
          , E., Van de Walle, R.:
          <article-title>Substring filtering for low-cost Linked Data interfaces</article-title>
          .
          <source>In: The Semantic Web - ISWC 2015. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9366</volume>
          , pp.
          <fpage>128</fpage>
          -
          <lpage>143</lpage>
          . Springer (Oct
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Verborgh</surname>
          </string-name>
          , R., Van Herwegen,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Mannens</surname>
          </string-name>
          , E., Van de Walle, R.:
          <article-title>Opportunistic Linked Data querying through approximate membership metadata</article-title>
          .
          <source>In: The Semantic Web - ISWC 2015. Lecture Notes in Computer Science</source>
          , vol.
          <volume>9366</volume>
          , pp.
          <fpage>92</fpage>
          -
          <lpage>110</lpage>
          . Springer (Oct
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Verborgh</surname>
          </string-name>
          , R.:
          <article-title>Querying history with Linked Data (</article-title>
          <year>2016</year>
          ), http://ruben.verborgh.org/ blog/2016/06/22/querying-history
          <article-title>-with-linked-data/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumontier</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Web API ecosystem through feature-based reuse (</article-title>
          <year>2016</year>
          ), http://arxiv.org/abs/1609.07108, under submission
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Verborgh</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Vander</given-names>
            <surname>Sande</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Hartig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            ,
            <surname>Van Herwegen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>De Vocht</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>De Meester</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Haesendonck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Colpaert</surname>
          </string-name>
          ,
          <string-name>
            <surname>P.</surname>
          </string-name>
          :
          <article-title>Triple Pattern Fragments: a low-cost knowledge graph interface for the Web</article-title>
          .
          <source>Journal of Web Semantics 37-38 (Mar</source>
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>