<!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>An Integration-Oriented Ontology to Govern Evolution in Big Data Ecosystems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sergi Nadal</string-name>
          <email>snadal@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Romero</string-name>
          <email>oromero@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alberto Abelló</string-name>
          <email>aabello@essi.upc.edu</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Panos Vassiliadis</string-name>
          <email>pvassil@cs.uoi.gr</email>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stijn Vansummeren</string-name>
          <email>svsummer@ulb.ac.be</email>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universitat Politècnica de</institution>
          ,
          <addr-line>Catalunya, BarcelonaTech</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universitat Politècnica de</institution>
          ,
          <addr-line>Catalunya, BarcelonaTech</addr-line>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universitat Politècnica de</institution>
          ,
          <addr-line>Catalunya, BarcelonaTech</addr-line>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Université Libre de Bruxelles</institution>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>University of Ioannina</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Big Data architectures allow to flexibly store and process heterogeneous data, from multiple sources, in its original format. The structure of those data, commonly supplied by means of REST APIs, is continuously evolving, forcing data analysts using it need to adapt their analytical processes after each release. This gets more challenging when aiming to perform an integrated or historical analysis of multiple sources. To cope with such complexity, in this paper we present the Big Data Integration ontology, the core construct for a data governance protocol that systematically annotates and integrates data from multiple sources in its original format. To cope with syntactic evolution in the sources, we present an algorithm that semi-automatically adapts the ontology upon new releases. A functional evaluation on realworld APIs is performed in order to validate our approach.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Big Data ecosystems enable organizations to evolve their
decision making processes from classic stationary data
analysis [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] (e.g., transactional) to include situational data [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
(e.g., social networks). Situational data are commonly
obtained in the form of data streams supplied by third party
data providers (e.g., Twitter or Facebook), by means of web
services (or APIs). Those APIs offer a part of their data
2017, Copyright is with the authors. Published in the Workshop DOLAP.
Proceedings of the EDBT/ICDT 2017 Joint Conference (March 21, 2017,
Venice, Italy) on CEUR-WS.org (ISSN 1613-0073). Distribution of this
paper is permitted under the terms of the Creative Commons license
CCby-nc-nd 4.0
ecosystem at a certain price allowing external data analysts
to enrich their data pipelines with them. With the rise of the
RESTful architectural style for web services [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], providers
have flexible mechanisms to share such data, usually
semistructured (i.e., JSON), over web protocols (e.g., HTTP).
However, such flexibility can be often a drawback for the
analysts on the other side. As opposite to other protocols
offering machine-readable contracts for the structure of the
provided data (e.g., SOAP), web services using REST do
not publish such information. Hence, analysts need to go
over the tedious task of carefully studying the documentation
and adapting their tools to the particular schema provided.
Besides the aforementioned complexity imposed by REST
APIs, there is a second challenge for data analysts. Data
providers are constantly evolving such endpoints1,2, hence
analysts need to continuously adapt the dependent tools to
such changes.
      </p>
      <p>
        Providing an integrated view over such evolving and
heterogeneous set of data sources is a challenging problem which
current Big Data technologies fail to address [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Take for
instance the λ-architecture [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], the most widespread
framework for Big Data systems. By dividing the processing
pipeline into the Speed and Batch layers, it enables to
perform both real-time and historical data analysis. Even though
it enables to easily ingest, store and process situational data,
it lacks a component providing an integrated global view or
schema. To this end, in this paper we present an approach
that, in the context of a λ-architecture, enables data
analysts to (a) integrate situational data coming from external
providers, as well as (b) smoothly facilitate the co-evolution
of data and analytical processes preserving backward
compatibility. Following the many “V’s” Big Data definition, the
former concerns Variety while the latter concerns Variability.
      </p>
      <sec id="sec-1-1">
        <title>Case Study.</title>
        <p>As an exemplar use case take the H2020 SUPERSEDE
project3, which we will use as our reference example
throughout the paper. It aims to support decision-making in the
evolution and adaptation of software services and
applications by exploiting monitored end-user feedback and runtime
data, with the overall goal of improving end-users’ quality
of experience (QoE). For the sake of this case study, we
1https://dev.twitter.com/ads/overview/recent-changes
2https://developers.facebook.com/docs/apps/changelog
3https://www.supersede.eu
narrow the scope to monitored data related to video on
demand (VoD) and textual feedback from social networks (e.g.,
Twitter) in JSON format, as exemplified in Code 1.
{
}
{
}</p>
        <p>Assume that data analysts use a complex QoE metric
from the integrated analysis over VoD and Twitter monitors.
VoD monitors use lagRatio as a measure for the quality of
service, measuring the percentage of time a user is waiting
for a video. Second, we can quantify the satisfaction of a user
by extracting the sentiment from the tweet s/he has issued.
Hence, we define QoE = (1−lagRatio/100)·sentiment(text)
yielding a bounded value between 0 and 1. For instance, the
tweet in Code 1 has a positive sentiment of 0.64, however
with the integrated analysis and a lag ratio of 75% we would
obtain a QoE score of 0.15, indicating a quality decrease.</p>
        <p>Coming to the essence of our contribution, which involves
the management of evolution, assume now that Twitter
Search API5 upgrades from version 1.0 to 1.1. Even if Twitter
issues an announcement beforehand, and even if our feedback
monitor is adapted to the new version (e.g., renaming the
tweet attribute to text), still, all data analysts performing
integrated QoE analysis will see their processes crash as they
are not syntactically valid anymore, with the hassle of fixing
them to conform the new schema.</p>
        <p>Given this setting, the problem is how to aid the data
analyst in the presence of schema changes by (a) understanding
what parts of the data structure change and (b) adapting her
code to this change.</p>
        <p>
          The problem is not straightforwardly addressable, despite
the valiant efforts of the research community. Previous work
on schema evolution has focused on software obtaining data
from relational views [
          <xref ref-type="bibr" rid="ref11 ref21">11, 21</xref>
          ]. Such approaches rely on the
capacity to veto changes affecting consumer applications.
Those techniques are not valid in our setting given the lack
of explicit schema information, as well as the impossibility
to prevent changes from third party data providers.
        </p>
        <p>So, to address the problem, we introduce the Big Data
Integration ontology that (a) enables the isolation of
analytical queries and applications from the technological details
imposed by the sources and (b) accommodates syntactic
evolution from the sources. The introduced ontology builds
4As measured by NLTK Text Classification (http://
text-processing.com/demo/sentiment)</p>
        <p>
          5https://dev.twitter.com/rest/reference/get/search/
tweets
upon known ideas from ontology-based data access (OBDA)
research [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ], and includes two layers in order to provide
analysts with an integrated and format-agnostic view of the
sources. We exploit this structure to handle the evolution of
source schema via semi-automated transformations on the
ontology upon service releases. Our approach is based on
well known Semantic Web technologies, specifically RDF,
which contrary to other schema definition languages (e.g.,
XSD) enable (a) reutilization of existing vocabularies, (b)
self-description of data, and (c) publishing such data on the
web [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Our contributions can be summarized as follows:
• We introduce a structured ontology, discussed in
Section 2, that allows to model and integrate situational
data from multiple data providers. As an add-on, we
take advantage of RDF’s nature to provide semantics
by means of Linked Data.
• We present a method that handles schema evolution
on the sources, see Section 3. In practice, we flexibly
accommodate source changes by only applying changes
to the ontology dismissing the need to change the
analytical processes logic.
• We assess our method by performing a functional
evaluation w.r.t. the results of RESTful API evolution
studies. The evaluation discussed in Section 4 reveals
that our approach is capable of semi-automatically
accomodating all structural changes concerning data
ingestion, which on average makes up 71.62% of the
changes occurring on widely used APIs.
        </p>
        <p>Our discussion is complemented by reviewing related work
in Section 5 and open issues for future work in Section 6.
2.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>BIG DATA INTEGRATION ONTOLOGY</title>
      <p>In this section, we present the Big Data Integration
ontology (BDI), the metadata artifact enabling to systematically
govern the data ingestion and analysis process. Its goal
is to model and integrate, in a machine-readable format,
semi-structured data while preserving data independence
regardless of the source formats or schema. To this end, it
is divided into two levels linked to each other by means of
mappings. The global level provides a unified schema for
querying as well as relevant metadata about the attributes,
while the source level deals with the physical details of each
data source.
2.1</p>
    </sec>
    <sec id="sec-3">
      <title>Preliminaries</title>
      <p>
        In this work, we present the BDI ontology as an
instantiation of the theoretical data integration (DI) framework
by Lenzerini [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Shortly, a DI system I is formalized as
a triple hG, S, Mi, which respectively represent the global
schema, the source schema and the mappings. S describes
the structure of the sources, while G provides an integrated
view on which queries will be posed. This is achieved through
M, a set of assertions qG ; qS or qS ; qG, being qG and qS
queries over G and S, respectively. The mappings follow the
local as view (LAV) approach when for each element s of S,
assertions are of the form s ; qG. Conversely, they follow
the global as view (GAV) approach when for each element g
of G, assertions are of the form g ; qS .
      </p>
      <p>A BDI ontology O is defined as a 3-tuple hG, S, Mi of
RDF graphs. The rationale behind the BDI ontology is
to provide a metadata model to systematically annotate
ingested situational data (i.e., events) from the sources (i.e.,
by means of S), while allowing data analysts to query a
static integrated schema that creates an abstraction layer of
the underlying physical details (i.e., by means of G). The
key aspect is that it allows ingesting and storing data in its
original source format, given that S is an accurate abstraction
of the events, and relies on query rewriting techniques (i.e.,
by means of M) to translate the queries to the corresponding
format. All this is possible, thanks to the extensibility of
RDF which enables to enrich G and S with the necessary
metadata such as constraints, data types or data formats.</p>
      <p>Our approach (see Figure 1) introduces the figure of data
steward as an analogy to the database administrator in
traditional relational settings. Aided by semi-automatic
techniques, s/he is responsible for (a) incorporating to S the
triple-based representation of the schema of newly incoming
events (Ei) produced by APIs, and (b) make such data
available for data analysts to query (Qi) by creating mappings
from S to G. In the following sections we elaborate on each
level that compose O presenting their metadata model, as
well as their mapping to the case study.</p>
      <p>The global level G reflects the main domain concepts,
relationships among them and features of analysis (i.e., maps
to the role of a UML diagram in a machine-readable format).
Its purpose is similar to the global schema in I, and its
elements are defined in terms of the vocabulary users will use
when posing queries. The metadata model for G distinguishes
concepts from features. Concepts can be linked by means
of domain-specific object properties with rdfs:domain and
rdfs:range. The link between a concept and its set of
features is achieved via G:hasFeature. Additionally, we
enrich such constructs with new semantics to aid the data
management and analysis phases. In this paper, we narrow
the scope to two properties widely used in data integrity
management, namely integrity constraints and data types for
features. Such information can help to an easier development
of the processing logic by assuring data consistency.</p>
      <p>Code 2 provides the triples that compose G in Turtle RDF
notation6. It contains the main metaclasses (using prefix
G7 as main namespace) which all features of analysis will
instantiate. Concepts and features can reuse existing
vocabularies by following the principles of the Linked Data (LD)
initiative. Additionally, we include elements for integrity
constraints and data types on features, respectively linked
using G:hasConstraint and G:hasDatatype. Following the
same LD philosophy, we reuse the rdfs:Datatype
vocabu</p>
      <sec id="sec-3-1">
        <title>6https://www.w3.org/TR/turtle</title>
        <p>
          7http://www.BDIOntology.com/global
lary to instantiate data types. With such design, we favor
the elements of G to be of any of the available types in XML
Schema (prefix xsd8). Finally, note that here we focus on
non-complex data types, however our model can be easily
extended to include complex types [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
@prefix G: &lt;http://www.BDIOntology.com/global/&gt; .
&lt;http://www.BDIOntology.com/global/&gt; rdf:type owl:Ontology .
G:hasFeature rdf:type owl:AnnotationProperty .
        </p>
        <p>G:hasConstraint rdf:type owl:AnnotationProperty .</p>
        <p>G:hasDatatype rdf:type owl:AnnotationProperty .</p>
        <p>G:IntegrityConstraint rdf:type owl:Class .</p>
        <p>G:Feature rdf:type owl:Class ;</p>
        <p>G:hasConstraint G:IntegrityConstraint ;</p>
        <p>G:hasDatatype rdfs:Datatype .</p>
        <p>G:Concept rdf:type owl:Class ;</p>
        <p>G:hasFeature G:Feature .</p>
        <p>Code 2: Metadata model for G in Turtle notation</p>
        <sec id="sec-3-1-1">
          <title>Case Study.</title>
          <p>Figure 2 depicts the instantiation of G in SUPERSEDE.
The color of the elements depicts instances of the data model
to the metadata model (i.e., rdf:type links). When possible
vocabularies are reused, namely https://www.w3.org/TR/
vocab-duv/ (prefix duv) for feedback elements as well as
http://dublincore.org/documents/dcmi-terms/ (prefix dct)
or http://schema.org/ (prefix sc). However, when no
vocabulary is available we define the custom SUPERSEDE
vocabulary (prefix sup). Regarding integrity constraints,
we provide three instantiations: sup:CurrentTimeIfEmpty
specifying a default value of the current date in the case of
missing value; sup:NotNull ensuring that the linked features
will always have a value and sup:Length-140 guaranteeing
that the length of the tweet is no longer than 140 characters.
2.3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Source Level</title>
      <p>
        The source level S has the same purpose as the source
schema in I, to model the data ingested from the sources. By
maintaining certain properties describing the source format
we allow the modeling of semi-structured data. Code 3
depicts the metadata model for S in Turtle RDF notation (using
prefix S9 as main namespace). As done for other modeling
languages [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], we define the concept S:Event which models
different ingested types of event (e.g., a JSON document),
one for each API. To support historical analysis of stored
data, as well as API evolution, events can produce different
schema versions which in turn consist of, possibly shared,
sets of attributes. In the context of this paper, we focus on
the ingestion of JSON data, hence we define the concepts
S:EmbeddedObject, S:Array and S:Attribute with their
respective links. In addition, schema versions are enriched with
the physical format of the data source, leveraging on class
dcat:mediaType. Such class, as part of the Data Catalog
Vocabulary10, offers a wide range of data formats11 aiding
in the definition of the specific parsing mechanism.
      </p>
      <sec id="sec-4-1">
        <title>8http://www.w3.org/2001/XMLSchema</title>
        <p>9http://www.BDIOntology.com/source
10https://www.w3.org/TR/vocab-dcat
11https://www.iana.org/assignments/media-types/
media-types.xhtml
@prefix owl: &lt;http://www.w3.org/2002/07/owl#&gt; .
@prefix rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
@prefix dct: &lt;http://purl.org/dc/terms/&gt; .
@prefix dcat: &lt;http://www.w3.org/ns/dcat#&gt; .
@prefix S: &lt;http://www.BDIOntology.com/source/&gt; .
&lt;http://www.BDIOntology.com/source/&gt; rdf:type owl:Ontology .
dct:format rdf:type owl:AnnotationProperty .</p>
        <p>S:hasAttribute rdf:type owl:AnnotationProperty .</p>
        <p>S:hasArray rdf:type owl:AnnotationProperty .</p>
        <p>S:hasEmbeddedObject rdf:type owl:AnnotationProperty .
S:Attribute rdf:type owl:Class .</p>
        <p>S:EmbeddedObject rdf:type owl:Class ;</p>
        <p>S:hasEmbeddedObject S:EmbeddedObject ;
S:hasArray S:Array ;</p>
        <p>S:hasAttribute S:Attribute .</p>
        <p>S:Array rdf:type owl:Class ;</p>
        <p>S:hasEmbeddedObject S:EmbeddedObject ;
S:hasArray S:Array ;</p>
        <p>S:hasAttribute S:Attribute .</p>
        <p>S:SchemaVersion rdf:type owl:Class ;
dct:format dcat:mediaType ;
S:hasEmbeddedObject S:EmbeddedObject ;
S:hasArray S:Array ;</p>
        <p>S:hasAttribute S:Attribute .</p>
        <p>S:Event rdf:type owl:Class ;</p>
        <p>S:produces S:SchemaVersion .</p>
        <p>
          Code 3: Metadata model for S in Turtle notation
As S is an accurate representation of the event’s structure,
we can leverage on schema languages, such as JSON Schema
[
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], for its automatic construction. However, this is not
always available, thus in this paper we advocate for the
automatic construction of S on the basis of a reference sample
dataset (i.e., a JSON document). Algorithm 1 depicts the
recursive process of generating the triples describing such
schema. Its inputs are the source level to populate, the
sample dataset and the parent’s IRI. An IRI is a unique string
identifier of an element of the ontology that is expressed as
an absolute path from the root of the ontology to the element
on hand. Such last parameter is used to isolate attributes
from different events within the same namespace. In the
first iteration, the parent element is the event’s IRI, and in
successive recursive calls are the JSON keys for arrays or
embedded objects. For instance, the id_str key from Code
1 will be stored with the IRI sup:Twitter/user/id_str.
Algorithm 1 Extract JSON Recursively
Pre: S is the source level, J is the sample JSON dataset
and parent the parent’s node IRI in S
Post: S contains the triples representing the structure of
the contents of J as children of parent
1: function ExtractRec(S, J, parent)
2: for each (k, v) ∈ J do
3: IRI = parent+"/"+k
4: S ∪= hIRI, "rdf:type", getClass(J, k)i
5: S ∪= hparent, getLink(J, k), IRIi
6: if getClass(J, k) = J SON Object.class then
7: extractRec(S, J (k), IRI)
8: else if getClass(J, k) = J SON Array.class then
9: extractRec(S, J (k)[0], IRI)
10: end if
11: end for
12: return S
13: end function
        </p>
        <p>Algorithm 1 makes use of the auxiliary functions getClass
and getLink. The purpose of the former is to return the
specific URIs for the JSON key on hand (S:EmbeddedObject,
S:Array or S:Attribute). Likewise, the purpose of the
latter is to return the respective edge (S:hasEmbeddedObject,
S:hasArray or S:hasAttribute). Finally, note that we
assume arrays with uniform structures, thus when exploring
the elements of an array it is only necessary to check the first
one (see line 9). In Section 3.2 we further elaborate on the
fully automated construction of S for a new version release.</p>
        <sec id="sec-4-1-1">
          <title>Case Study.</title>
          <p>Figure 3 shows the instantiation of S in SUPERSEDE.
The two sources produce the events in Code 1. Elements
in S have been obtained using Algorithm 1, invoking it as
ExtractRec(∅, {...}, "sup:Twitter_API_Monitor") for the
Twitter monitor, and similarly for the VoD. We simplify IRIs
as V and T , respectively for VoD and Twitter monitors.
2.4</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Mappings</title>
      <p>
        In this subsection, we discuss how the mappings link the
different levels composing O. Our approach uses two types
of mappings, those linking JSON events with their
triplebased schema representation, and those linking the global
and source levels. On one hand, the former are implicitely
linked by the JSON keys and the IRIs, as constructed by
Algorithm 1, and thus we have an accurate one-to-one
mapping. On the other hand, the latter consists of the triplets
present in M. In order to obtain clean semantics for the
mappings, we limit them to be in the form tS ; tG (i.e.,
triples htS , S:mapsTo, tGi), this allows to better
accommodate source evolution. Note we restrict that each source
element will have a mapping to exactly one global element in
order to simplify the query rewriting process to unfolding [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
To forestall any possible criticism, we would like to clarify
that constraining source elements to map to exactly one
global element is not overrestrictive or oversimiplistic, but
rather it provides clean semantics for our sources. What
would be problematic would be the inverse (constraining
global elements to single providers), but, as we show in the
following subsection, there is no such problem. With such
final construct, we can depict the complete metadata model
for O in Figure 4.
2.5
      </p>
    </sec>
    <sec id="sec-6">
      <title>Querying Via the Ontology</title>
      <p>
        As previously mentioned, queries will be issued to the
elements of G and rewritten (unfolding the mappings) to the
JSON events in a two-phase manner. Firstly, by issuing a
SPARQL query to M, elements in S that are associated to
the elements of G in the user query are devised. Note that
the SPARQL query is traversing a single path, and hence
has low complexity. Note that this first phase may require
the data analyst to resolve potential ambiguities. This is
due to the fact that a global feature may have many source
attributes from different events (see sc:Time in Figure 5).
The second phase consists of translating the query to an
specific programming language to parse the source format of
the event on hand (annotated with dcat:mediaType).
Mappings between S and the events are depicted in the IRI
of attributes, yielding accurate one-to-one transformations.
Many proposals exist for ontology-based querying such as
Ontop [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], an OBDA system providing access to relational
databases through a domain ontology.
      </p>
      <sec id="sec-6-1">
        <title>Case Study.</title>
        <p>Figure 5 depicts the complete instantiation for O in
SUPERSEDE. To ensure readability, internal classes are
omitted and only the core ones are shown. In SUPERSEDE,
monitors push data to Apache Kafka, a distributed
message queue that distinguishes incoming streams using
topics. A stream is assigned a topic for each combination
hEvent, SchemaV ersioni. In Figure 6 we depict the QoE
integrated analysis (in the form of an SQL-like query) and
the unfolding to resolve it using the BDI ontology.
SELECT AVG((1-V.sup:LagRatio/100) *</p>
        <p>sentiment(UF.dct:description))
FROM sup:VoDEvent V, duv:UserFeedback UF
WHERE V.sc:Time = today() &amp;&amp; UF.sc:Time = today()</p>
        <p>G
sup:LagRatio
dct:description</p>
        <p>M</p>
        <p>/ S
/ sup:lagRatio
0 sup:tweet</p>
        <p>JSONParser</p>
        <p>/ JSON
/ VoDStream("lagRatio")</p>
        <p>/ UFStream("tweet")
3 sup:timestamp / VoDStream("timestamp")
sc:Time</p>
        <p>/ sup:created_at / UFStream("createdAt")</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>HANDLING EVOLUTION</title>
      <p>
        In this section, we present how the BDI ontology
accomodates evolution of situational data. Chapin et al. distinguish
between three main areas in software evolution: code,
software and customer-experienced functionality [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Specific
studies REST API evolution [
        <xref ref-type="bibr" rid="ref10 ref24">10, 24</xref>
        ] have concluded that
most of such changes occur in the code, and thus in the
structure of incoming events. Our goal is to semi-automatically
adapt the BDI ontology to such evolution. To this end, in
the following subsections we present an algorithm to aid the
data steward to enrich the ontology upon new releases.
3.1
      </p>
    </sec>
    <sec id="sec-8">
      <title>Releases</title>
      <p>In Section 2.1, we discussed the role of the data steward as
the unique maintainer of the BDI ontology in order to make
data management tasks transparent to data analysts. Now,
the goal is to shield such analytical processes, implemented
on top of G, so that they do not crash upon new API version
releases. In other words, we need to adapt S to such schema
evolution in the events, so that G is not affected. To this end,
we introduce the notion of release, the construct indicating
which elements from the new event (Evt) will be used for
analysis and how do they link the global level. Formally, a
release R is defined as a 3-tuple hJ, G, θi, where: J ⊂ Evt is
the set of source schema elements made available for analysis,
G ⊂ G is the set of global elements from O related to the
new release, and θ = J 7→ G is a bijective function mapping
the JSON elements with those in the global level.</p>
      <p>
        R must be created by the data steward upon new releases.
Several approaches can aid this process, such as paris [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]
which uses probabilistic methods to align and match RDF
ontologies. In the following subsection, we discuss how R
serves as input to the algorithm that will automatically adapt
O, ensuring the correct functioning of queries.
      </p>
      <sec id="sec-8-1">
        <title>Case Study.</title>
        <p>For the case of Twitter feedback monitors, the release
R would be depicted as J = {created_at, lang, tweet,
hashtagText, id_str, feedbackGatheringId, screen_name},
G = {sc:Time, sc:Language, sc:name, dct:description,
sc:propertyID} and θ = { lang 7→ sc:Language, created_at
7→ sc:Time, feedbackGatheringId 7→ sc:propertyID, tweet
7→ dct:description }.
3.2</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>Release-based Ontology Evolution</title>
      <p>As mentioned above, changes in the event’s elements
require reacting in order to avoid queries to crash. Furthermore,
the ultimate goal is to provide such adaptation in an
automated way dismissing the need of the developer’s interaction.
To this end, Algorithm 2 applies the necessary changes to
adapt the BDI ontology O w.r.t a new release R. It starts
registering the event endpoint, in case it is new (line 4), and
the new schema version to further link them (lines 7 and
8). Then, the JSON (R(J )) is used to create a triple-based
representation of its schema (calling Algorithm 1, in line 10).
With such, it is possible to iterate on its elements and check
their existence in the current source level O(S). Given the
way IRIs for attributes are constructed in Algorithm 1, we
can ensure that only attributes from the same event will be
reused within subsequent versions. This helps to maintain
a low growing rate of O(S), as well as avoiding potential
semantic differences that would cause mappings to different
global elements. Finally, by iterating on the partial function
(R(θ)) the mappings to the global level are generated (line
19). Note, the usage of the auxiliary method findIRI in line
17. Given a textual JSON key, it returns its fully qualified
IRI in the source level.</p>
      <p>Algorithm 2 Adapt to Release
Pre: O BDI ontology, R new release, Evt event and V new
version
Post: O is adapted w.r.t R
1: function NewRelease(O, R, Evt, V )
2: Evturi = "S:Event/"+Evt
3: if Evturi ∈/ O(S) then
4: O(S) ∪= hEvturi, "rdf:type", "S:Event"i
5: end if
6: Vuri = "S:SchemaVersion/"+V
7: O(S) ∪= hVuri, "rdf:type", "S:SchemaVersion"i
8: O(S) ∪= hEvturi, "S:produces", Vurii
9: O(S) ∪= hVuri, "dct:format", "dcat:appl/json"i
10: Snew = extractRec(O(S), R(J ), Vuri)
11: for each s ∈ Snew do
12: if s ∈/ O(S) then
13: O(S) ∪= s
14: end if
15: end for
16: for each (j, g) ∈ R(θ) do
17: jiri = findIRI(j, Snew)
18: giri = "G:Feature/"+g
19: O(M) ∪= hjiri, "M:mapsTo", girii
20: end for
21: end function</p>
      <sec id="sec-9-1">
        <title>Case Study.</title>
        <p>Let us assume that the Twitter feedback monitor releases
a new simplified version of the schema in XML format (see
the sample XML event in Code 4).</p>
        <p>The new release R can be depicted as J = {created_at,
locale, tweetText, feedbackGatheringId}, G = {sc:Time,
sc:Language, sc:name, dct:description, sc:propertyID},
θ = { locale 7→ sc:Language, created_at 7→ sc:Time,
tweetText 7→ dct:description, feedbackGatheringId 7→
sc:propertyID }. Figure 7 depicts the resulting BDI
ontology O after running Algorithm 2 with such input. In the
bottom left, we depict the old source level, while in the
bottom right the evolved one. In the top, we depict the global
level, which is not changed. Elements with the same color
depict edges of type S:mapsTo from the source to the global
level. Finally, for readability, URIs have been simplified and
do not strictly adhere to those generated in Algorithm 2.
&lt;Twitter_API_Monitor_Simple&gt;
&lt;feedbackGatheringId&gt;28&lt;/feedbackGatheringId&gt;
&lt;locale&gt;en&lt;/locale&gt;
&lt;tweetText&gt;I no longer see the loading symbol&lt;/tweetText&gt;
&lt;created_at&gt;1475010425&lt;/created_at&gt;
&lt;/Twitter_API_Monitor_Simple&gt;</p>
        <p>Code 4: XML event for the new Twitter version
4.</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>EVALUATION</title>
      <p>In this section, we present the evaluation results on our
approach. We provide a functional evaluation on evolution
management and discuss performance issues.
4.1</p>
    </sec>
    <sec id="sec-11">
      <title>Functional Evaluation</title>
      <p>
        In order to evaluate the functionalities provided by the
BDI ontology, we take the most recent study on structural
evolution patterns in REST API [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Such work
distinguishes changes at 3 different levels, those in (a) API-level,
(b) method-level and (c) parameter-level. Our goal is to
demostrate that our approach can semi-automatically
accommodate such changes. To this end, it is necessary to
make a distinction between those changes occurring in the
data requests and those in the response. Throughout the
paper, we assumed the existence of a set of monitoring tools,
from now on we refer to them as monitors, in charge of
bridging the communication between the API providers and
the Big Data architecture [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Besides pulling data from
the API endpoints, they also enrich the response with
additional information (e.g., the feedbackGatheringId attribute
in SUPERSEDE). All functionalities related to fetch data
from the API provider (e.g., authentication or HTTP query
parametrization) are delegated to them. With this in mind,
we provide the list of changes per level and indicate the
component responsible of it (i.e., either Monitor or BDI Ont.).
For those functionalities managed by the BDI ontology we
later discuss their specific rationale.
      </p>
      <sec id="sec-11-1">
        <title>API-level Changes.</title>
        <p>Those changes concern the whole of an API and it can
be observed either because a new endpoint is incorporated
(e.g., a new social network in the SUPERSEDE use case)
or to update all methods concerning one provider. Table 1
depicts the API-level change breakdown and the component
responsible to handle it.</p>
        <p>Adding or changing a response format at API level consists
of, for each event from such provider, registering a new
release with this format. Regarding the deletion of a response
format, it does not require any action, due to the fact that
no further data on such format will arrive. However, in order
to preserve historic backwards compatibility, no elements
should be removed from O.</p>
      </sec>
      <sec id="sec-11-2">
        <title>Method-level Changes.</title>
        <p>Those changes concern modifications on the current version
of an operation. They occur either because a new
functionality is released or because existing functionalities are modified.
Table 2 summarizes the method-level change breakdown and
the component responsible to handle it.</p>
        <p>BDI Ont.</p>
        <p>BDI Ont.</p>
        <p>Method-level Change
Add error code
Change rate limit
Change authentication model
Change domain URL
Add method
Delete method
Change method name
Change response format</p>
        <p>Those changes have more overlapping with the monitors
due to the fact that new methods require changes in both
request and response. In the context of the BDI ontology,
each method is an instance of S:Event and thus, adding a
new one consists on declaring a new release and running
Algorithm 2. Renaming a method requires renaming the Event</p>
        <p>Similarly to the previous level, some parameter-level changes
are managed by both monitors and the ontology. This is
caused by the ambiguity of the change statements, and hence
we might consider both URL query parameters and JSON
response parameters. Changing format of a parameter has
a different meaning as before, and here entails a change of
data type or structure. Any of the parameter-level changes
identified can be automatically handled by the same process
of creating a new release for the event on hand. Specifically,
the changes will be depicted in the release dataset R(J ).
4.2</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>Industrial Applicability</title>
      <p>
        After functionally validating that the BDI ontology can
handle all types of API evolution, next we aim to study how
these frequent changes occur in real-world APIs. For this
purpose we study the results from [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], a similar study as the
one in the previous subsection. In a nutshell, [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] presents 16
change patterns that frequently occur in the evolution of 5
widely used APIs. With such information, we can show the
number of API changes per API that could be accommodated
#Changes
Monitor
0
2
22
27
35
#Changes
Ontology
24
6
36
0
3
by the BDI ontology. We summarize the results in Table
4. As before, we distinguish between changes concerning
(a) the monitors, (b) the ontology and (c) both monitors
and ontology. This enables us to measure the percentage of
changes per API that can be partially accommodated by the
ontology (changes also concerning the monitors) and those
fully accommodated (changes only concerning the ontology).
      </p>
      <p>Our results depict that for all studied APIs, the BDI
ontology could, on average, partially accommodate 48.84%
of changes and fully accommodate 22.77% of changes. In
other words, our semi-automatic approach enables to tackle
on average 71.62% of changes.
4.3</p>
    </sec>
    <sec id="sec-13">
      <title>Performance Evaluation</title>
      <p>In this final evaluation we are concerned with
performancewise aspects of using the ontology. Particularly, we will study
its temporal growth w.r.t. the releases of a real-world API,
namely Wordpress REST API12. This analysis is of special
interest, considering that the size of the ontology may have
a direct impact on the cost of querying and maintaining it.</p>
      <sec id="sec-13-1">
        <title>Methodology.</title>
        <p>
          As a measure of growth, we count the number of triples in
S after each new release, as it is the most prone to changes.
Given the high complexity of such APIs we focus on a specific
method and study its structural changes, namely the GET
Posts API. By studying the changelog, we start from the
currently deprecated version 1 evolving it to the next major
version release 2. We further introduce 13 minor releases of
version 2. (the details of the analysis can be found in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-13-2">
        <title>Results.</title>
        <p>The barcharts in Figure 8 depict the number of triples
added to S per version release. As version 1 is the first
occurrence of such endpoint, all elements must be added and
thus carries a big overhead. Version 2 is a major release
where few elements can be reused. Later, minor releases do
not have many schema changes, with few additions, deletions
or renames. Thus, the largest batch of triples per minor
release are edges of type S:hasAttribute. Each new version
needs to identify which attributes it provides even though
no change has been applied to it w.r.t. previous versions.</p>
        <p>With such analysis we conclude that major version changes
entail a steep growth, however that is infrequent in the
studied API. On the other hand, minor versions occur frequently
but the growth in terms of triples has a steady linear growth.
The red line depicts the cummulative number of triples
after each release. For a practically stable amount of minor
release versions we obtain a linear, stable growth in S. This
guarantees that querying O for unfolding will not impose a
12https://wordpress.org/plugins/rest-api
big overhead, ensuring a good performance of our approach
across time. Nonetheless, other optimization techniques (e.g.,
caching) can be used to further reduce the query cost.
5.</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>RELATED WORK</title>
      <p>As we discussed in Section 1, in this paper we are concerned
with challenges related to Variety and Variability in Big Data
ecosystems. Thus, in this section we independently study
the related work for such research lines.</p>
      <sec id="sec-14-1">
        <title>Governance of Big Data Ecosystems.</title>
        <p>
          Lots of efforts are nowadays being put by the research
community on the governance of Big Data ecosystems. Project
Constance [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] aims to cover the lack of semantics in data lakes.
Specifically, its metadata management system GEMMS [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
creates a unified metamodel for raw data and allows querying
the data with rewriting methods such as ours. Our work
differs from Constance in the manner that we do not narrow
the scope to data lakes (e.g., batch analysis) but also to
real-time data in the forms of data streams. We additionally
adopt techniques to accommodate schema evolution. Other
approaches have also identified the need to propose a curated
data lake enriched with semantics [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. However, matters on
streaming data and evolution are overlooked as before.
        </p>
      </sec>
      <sec id="sec-14-2">
        <title>API and Database Evolution.</title>
        <p>
          In previous sections, we have cited relevant works on
RESTful API evolution [
          <xref ref-type="bibr" rid="ref10 ref24">24, 10</xref>
          ]. They provide a catalog of changes,
however they do not provide any approach to systematically
deal with them. Other similar works, such as [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], empirically
study API evolution aiming to detect its healthiness. If we
look for approaches that automatically deal with evolution,
we must shift the focus to the area of database schema
evolution. Such works, however, are mostly focused on relational
databases [
          <xref ref-type="bibr" rid="ref11 ref21">21, 11</xref>
          ]. They apply view cloning to accommodate
changes while preserving old views. Such techniques rely on
the capability of vetoing certain changes that might affect the
overall integrity of the system. This is however an unrealistic
approach to adopt in our setting.
6.
        </p>
      </sec>
    </sec>
    <sec id="sec-15">
      <title>CONCLUSIONS AND FUTURE WORK</title>
      <p>Our research aims at providing self-adapting capabilities
in the presence of evolution in Big Data ecosystems. In
this paper we have presented the building blocks to handle
schema evolution using a metadata-driven approach. The
presented algorithms aid data stewards to systematically
accommodate announced changes in the form of releases.
Our evaluation results show that a great number of changes
performed in real-world APIs could be semi-automatically
handled by the monitors and the ontology. There are many
interesting future directions. A prominent one is to extend
the ontology with richer constructs to semi-automatically
adapt to unanticipated schema evolution.</p>
    </sec>
    <sec id="sec-16">
      <title>ACKNOWLEDGEMENTS</title>
      <p>This work has been partly supported by the H2020
SUPERSEDE project, funded by the EU Information and
Communication Technologies Programme (num. 644018), and
the GENESIS project, funded by the Spanish Ministerio de
Ciencia e Innovación (num. TIN2016-79269-R).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Abelló</surname>
          </string-name>
          .
          <article-title>Big Data Design</article-title>
          .
          <source>In DOLAP</source>
          , pages
          <fpage>35</fpage>
          -
          <lpage>38</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Abelló</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Darmont</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Etcheverry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Golfarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mazón</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Naumann</surname>
          </string-name>
          , T. B.
          <string-name>
            <surname>Pedersen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Rizzi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Trujillo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Vassiliadis</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Vossen. Fusion Cubes</surname>
          </string-name>
          :
          <article-title>Towards Self-Service Business Intelligence</article-title>
          .
          <source>IJDWM</source>
          ,
          <volume>9</volume>
          (
          <issue>2</issue>
          ):
          <fpage>66</fpage>
          -
          <lpage>88</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bizer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Heath</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          .
          <article-title>Linked Data - The Story So Far</article-title>
          .
          <source>Int. J. Semantic Web Inf. Syst.</source>
          ,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>22</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Cogrel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Komla-Ebri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kontchakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rezk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Rodriguez-Muro</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Xiao.</surname>
          </string-name>
          <article-title>Ontop: Answering SPARQL queries over relational databases</article-title>
          .
          <source>Semantic Web</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <fpage>471</fpage>
          -
          <lpage>487</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N.</given-names>
            <surname>Chapin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Hale</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Khan</surname>
            ,
            <given-names>J. F.</given-names>
          </string-name>
          <string-name>
            <surname>Ramil</surname>
            , and
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Tan</surname>
          </string-name>
          .
          <source>Types of Software Evolution and Software Maintenance. Journal of Software Maintenance</source>
          ,
          <volume>13</volume>
          (
          <issue>1</issue>
          ):
          <fpage>3</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Downey. XML Schema</surname>
          </string-name>
          <article-title>Patterns for Common Data Structures</article-title>
          . W3.org,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>R.</given-names>
            <surname>Hai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Geisler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Quix</surname>
          </string-name>
          .
          <article-title>Constance: An Intelligent Data Lake System</article-title>
          .
          <source>In SIGMOD</source>
          , pages
          <fpage>2097</fpage>
          -
          <lpage>2100</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Jovanovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Romero</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Abelló</surname>
          </string-name>
          .
          <article-title>A Unified View of Data-Intensive Flows in Business Intelligence Systems: A Survey. T. Large-Scale Data-</article-title>
          and
          <string-name>
            <surname>Knowledge-Centered</surname>
            <given-names>Systems</given-names>
          </string-name>
          ,
          <volume>29</volume>
          :
          <fpage>66</fpage>
          -
          <lpage>107</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          .
          <article-title>Data Integration: A Theoretical Perspective</article-title>
          . In PODS, pages
          <fpage>233</fpage>
          -
          <lpage>246</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xiong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Liu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. Zhang. How</given-names>
            <surname>Does Web Service API Evolution Affect Clients? In</surname>
          </string-name>
          <string-name>
            <surname>ICWS</surname>
          </string-name>
          , pages
          <fpage>300</fpage>
          -
          <lpage>307</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P.</given-names>
            <surname>Manousis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. Papastefanatos. Impact</given-names>
            <surname>Analysis</surname>
          </string-name>
          and
          <article-title>Policy-Conforming Rewriting of Evolving Data-Intensive Ecosystems</article-title>
          .
          <source>J. Data Semantics</source>
          ,
          <volume>4</volume>
          (
          <issue>4</issue>
          ):
          <fpage>231</fpage>
          -
          <lpage>267</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>V.</given-names>
            <surname>Markl</surname>
          </string-name>
          .
          <article-title>Situational Business Intelligence</article-title>
          . In BIRTE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>N.</given-names>
            <surname>Marz</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Warren</surname>
          </string-name>
          .
          <source>Big Data: Principles and Best Practices of Scalable Realtime Data Systems. Manning Publications Co., 1st edition</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Nadal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Romero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Abelló</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Vansummeren</surname>
          </string-name>
          .
          <article-title>Wordpress Evolution Analysis www</article-title>
          .essi.upc.edu/~snadal/wordpress_evol.txt,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivé</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Raventós</surname>
          </string-name>
          .
          <article-title>Modeling Events as Entities in Object-oriented Conceptual Modeling Languages. Data Knowl</article-title>
          . Eng.,
          <volume>58</volume>
          (
          <issue>3</issue>
          ):
          <fpage>243</fpage>
          -
          <lpage>262</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Oriol</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Franch</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Marco</surname>
          </string-name>
          .
          <article-title>Monitoring the Service-based System Lifecycle with SALMon</article-title>
          .
          <source>Expert Syst. Appl.</source>
          ,
          <volume>42</volume>
          (
          <issue>19</issue>
          ):
          <fpage>6507</fpage>
          -
          <lpage>6521</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>C.</given-names>
            <surname>Pautasso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann. Restful Web</surname>
          </string-name>
          <article-title>Services vs. "Big" Web Services: Making The Right Architectural Decision</article-title>
          .
          <source>In WWW</source>
          , pages
          <fpage>805</fpage>
          -
          <lpage>814</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>F.</given-names>
            <surname>Pezoa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. L.</given-names>
            <surname>Reutter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Suarez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ugarte</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Vrgoc</surname>
          </string-name>
          .
          <article-title>Foundations of JSON Schema</article-title>
          .
          <source>In WWW</source>
          , pages
          <fpage>263</fpage>
          -
          <lpage>273</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>A.</given-names>
            <surname>Poggi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lembo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Calvanese</surname>
          </string-name>
          , G. De Giacomo,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lenzerini</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Rosati</surname>
          </string-name>
          .
          <article-title>Linking data to ontologies</article-title>
          .
          <source>J. Data Semantics</source>
          ,
          <volume>10</volume>
          :
          <fpage>133</fpage>
          -
          <lpage>173</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>C.</given-names>
            <surname>Quix</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hai</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Vatov.</surname>
          </string-name>
          <article-title>GEMMS: A Generic and Extensible Metadata Management System for Data Lakes</article-title>
          . In CAiSE, pages
          <fpage>129</fpage>
          -
          <lpage>136</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>I.</given-names>
            <surname>Skoulis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Zarras</surname>
          </string-name>
          .
          <article-title>Growing Up with Stability: How Open-source Relational Databases Evolve</article-title>
          . Inf. Syst.,
          <volume>53</volume>
          :
          <fpage>363</fpage>
          -
          <lpage>385</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>F. M.</given-names>
            <surname>Suchanek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Abiteboul</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Senellart</surname>
          </string-name>
          . PARIS:
          <article-title>Probabilistic Alignment of Relations, Instances, and Schema</article-title>
          . PVLDB,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>157</fpage>
          -
          <lpage>168</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>I.</given-names>
            <surname>Terrizzano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. M.</given-names>
            <surname>Schwarz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roth</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Colino</surname>
          </string-name>
          .
          <article-title>Data Wrangling: The Challenging Yourney from the Wild to the Lake</article-title>
          .
          <source>In CIDR</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>S.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Keivanloo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zou. How Do Developers React to RESTful API Evolution? In</surname>
          </string-name>
          <string-name>
            <surname>ICSOC</surname>
          </string-name>
          , pages
          <fpage>245</fpage>
          -
          <lpage>259</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Zarras</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and I. Dinos. Keep</given-names>
            <surname>Calm</surname>
          </string-name>
          and
          <article-title>Wait for the Spike! Insights on the Evolution of Amazon Services</article-title>
          . In CAiSE, pages
          <fpage>444</fpage>
          -
          <lpage>458</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>