<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Two-Fold Quality Assurance Approach for Dynamic Knowledge Bases: The 3cixty Use Case</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nandana Mihindukulasooriya</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giuseppe Rizzo</string-name>
          <email>giuseppe.rizzo@ismb.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raphae¨l Troncy</string-name>
          <email>raphael.troncy@eurecom.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oscar Corcho</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rau´ l Garc´ıa-Castro</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>EURECOM</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ontology Engineering Group</institution>
          ,
          <addr-line>UPM</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The 3cixty platform relies on a continuous integration workflow for the generation and maintenance of evolving knowledge bases in the domain of culture and tourism. This approach is inspired by common practices in the software engineering industry in which continuous integration is widely-used for quality assurance purposes. The objective of this paper is to present a similar approach for knowledge base population and publishing. The proposed approach consists of two main steps: (i) exploratory testing, and (ii) fine-grained analysis. In the exploratory testing step, the knowledge base is tested for patterns that may reveal erroneous data or outliers that could indicate inaccuracies. This phase is knowledge-base agnostic and provides inputs for the second phase. In the finegrained analysis step, specific tests are developed for a particular knowledge base according to the data model and pre-defined constraints that shape the data. More precisely, a set of predefined queries are executed and their results are compared to the expected answers (similar to unit testing in software engineering) in order to automatically validate that the knowledge base fulfills a set of requirements. The main objective of this approach is to detect and to flag potential defects as early as possible in the data publishing process and to eliminate or minimize the undesirable outcomes in the applications that depend on the knowledge base, typically, user interfaces that enable to explore the data but rely on a particular shape of the data. This two-fold approach proves to be critical when the knowledge base is continuously evolving, not necessarily in a monotonic way, and when real-world applications highly depend on it such as the 3cixty multi-device application.</p>
      </abstract>
      <kwd-group>
        <kwd>Data quality</kwd>
        <kwd>data validation</kwd>
        <kwd>continuous integration</kwd>
        <kwd>dynamic knowledge base</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Mihindukulasooriya et al.
argue that the KB generation process should learn from the experiences in the software
engineering field and adapt some of these approaches for assuring KB quality.</p>
      <p>
        In modern days of complex software development, it is hard to envision the
complete set of user requirements upfront and to immediately have all functionalities and
data models fully-defined. Both functionalities and data models of the software should
evolve based on user feedback, changes in business and technical environments, and
other organizational factors [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Thus, software development methodologies that adapt
to changes (rather than rejecting unforeseen changes) such as agile methodologies,
became inevitable in the software development industry. However, despite of the benefits
those methodologies bring, such as business agility or faster development and release
cycles, one of the main challenges of these methodologies is how to perform quality
assurance to validate that software meets the user requirements and does not introduce
any undesirable side effects [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. Continuous integration [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] plays a key role in
guaranteeing the quality of systems that have components or data that evolve rapidly and
are developed by multiple teams. Continuous integration allows teams to integrate their
work frequently while using automated builds and testing mechanisms for detecting
quality problems as early as possible thus reducing the cost of correcting those
problems and build high quality functional software rapidly [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        3cixty is a semantic web platform that enables to build real-world and
comprehensive knowledge bases in the domain of culture and tourism for cities. The entire
approach has been tested first for the occasion of the Expo Milano 2015 [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], where a
specific knowledge base for the city of Milan was developed, and is now refined with
the development of knowledge bases for the cities of Nice and London. They contain
descriptions of events, places (sights and businesses), transportation facilities and
social activities, collected from numerous static, near- and real-time local and global data
providers, including Expo Milano 2015 official services in the case of Milan, and
numerous social media platforms. When deploying 3cixty on a regular basis, we observe
the imperial need of following an agile process. The knowledge base is continuously
evolving, since new cultural events are proposed every day, while some other resources
cease to exist, e.g., a business has moved or has closed or is changing its opening hours.
The main motivation for the approach proposed in this paper is to validate the
evolution of the content of a knowledge base while maintaining a high level of quality.
Furthermore, it is also useful to monitor the growth of the knowledge base providing a
high-level view of its evolution.
      </p>
      <p>
        Data quality is a complex multi-dimensional concept commonly defined as “fitness
for use” [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. The data quality life-cycle generally includes the identification of quality
requirements and relevant metrics, quality assessment, and quality improvement. The
metrics for quality assessment are categorized in different dimensions such as
consistency, conciseness, or completeness. For each of these dimensions, there are a
widerange of metrics defined in the literature for measuring different aspects related to a
given quality dimension [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. On the one hand, some of these metrics can be
knowledge base agnostic such as the number of triples in the KB or the number of syntax
errors in a particular serialization format of the KB. On the other hand, some other
metrics are specific to the KB, for example, the number of bus stops that do not have geo
coordinates in the 3cixty KB. These two types of metrics are complementary such that
more generic and KB agnostic metrics provide hints for defining fine-grained KB
specific metrics. Quality assessment can be done either manually or (semi-)automatically
with the help of the tools that facilitate the generation of the required metrics.
      </p>
      <p>Once the quality assessment is done, the assessment results will indicate the
presence of quality issues. The ultimate goal is to improve the overall KB quality based on
the quality issues identified by eliminating them and making sure that they will not be
introduced in the future. In this paper, we present the data quality approach we used for
developing the 3cixty KB which uses a continuous integration approach inspired by the
software engineering industry.</p>
      <p>The remainder of this paper is structured as follows. We discuss some related work
in Section 2. Then, we present a two-fold approach for quality assurance of dynamic
KBs in Section 3. We detail how this approach has been implemented in the case of the
3cixty KB, using the LOUPE and SPARQL interceptor tools in Section 4. We propose
some lessons learned in Section 5 and we finally outline some future work in Section 6.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        Related work on the topic of quality assessment of knowledge bases can be categorized
into two main groups: a) research works that define techniques and metrics for
measuring quality, and b) tools and applications that assess quality. Zaveri et al. [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] provide a
comprehensive literature review of the efforts related to Linked Data quality evaluation,
with a classification of quality dimensions and metrics found in the literature. This work
includes 69 metrics grouped into 18 quality dimensions extracted from 30 research
papers published between 2002 to 2014. More recently, Assaf et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] build upon these
efforts but focus only on objective quality indicators, and propose the ROOMBA tool
that helps data owners to rate the quality of their datasets and get some hints on possible
improvements, and data consumers to choose their data sources from a ranked set.
      </p>
      <p>
        Quality assessment tools and applications can be categorized into two main groups.
First, tools such as ProLOD [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], LODStats [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and ABSTAT [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] that profile datasets
and generate statistics which provide heuristics and general indicators about the dataset
quality. In the approach presented in this paper, we use a similar tool, Loupe [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], for
exploring the 3cixty KB and detecting quality issues. The main advantage of Loupe
compared to the aforementioned tools is that it allows the users to deep dive into
highlevel statistics information by zooming into several levels of details, making it easier to
identify outliers and abnormal patterns in the data. Furthermore, the detailed
information presented in Loupe is directly linked to the corresponding triples via
dynamicallygenerated SPARQL queries making it easier for the quality assessor to inspect the
corresponding triples.
      </p>
      <p>
        Other quality assessment tools enable to perform a more fine-grained analysis of
knowledge bases. WIQA [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] allows to filter information based on policies defined by
users in the WIQA-PL policy language. Sieve [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] is a framework that attempts to
assess and to increase completeness, conciseness and consistency of data through data
fusion. DaCura [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] provides a set of tools for collecting and curating evolving datasets
maintaining high-quality Linked Data. Triplecheckmate [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] is a tool for
crowdsourcing the quality assessment of Linked Data. RDFUnit [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] is a tool for test-driven quality
assessment based on schema constraint validation detection with SPARQL query
templates and it is the closest to the SPARQL Interceptor system presented in this paper.
SPARQL Interceptor has several characteristics that makes it particularly suitable for
the approach presented in this paper. It is a tool well-thought for continuous
integration and delivery, and it includes useful features such as continuous monitoring of the
KB status, breakdown analysis per status of the KB, and configurable notifications. It
seamlessly integrates with continuous integration systems such as Jenkins 4 and can be
easily used in the knowledge base development process.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>A two-fold approach for quality assurance of continuously evolving KBs</title>
      <p>
        The Linked Data quality assurance methodologies generally consist of (i)
identification of quality requirements, (ii) execution of quality assessment, and (iii) data repair
and quality improvements [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. As quality is defined as “fitness for use” and quality is
multidimensional, it is important to identify what are the important aspects of quality
dimensions that are relevant and what are the required levels of quality for a given use
case. The quality assessment is planned according to the information extracted in the
quality requirements identification phase. The quality assessment can be done at
different levels. First, a generic analysis of the knowledge base can be done by extracting a
set of common knowledge base agnostic metrics that can give certain heuristics about
the data quality. Then, a more advanced analysis can be done which is focused on the
quality requirements identified during the first phase to ensure that those requirements
are fulfilled in the dataset. The final phase is the data repair and quality improvement
step which has the goal of identifying the causes of the quality issues and of eliminating
them. This is important because the dataset generation process could have several steps
such as the acquisition of raw data, RDF mapping and transformations, data publication
and each of these steps can introduce quality defects into data. Thus, the root cause of
the quality defects needs to be identified and eliminated so that not only the current
version of the dataset but also the future versions will be free of errors.
      </p>
      <p>This section presents a methodology suitable for quality assessment of continuously
evolving knowledge bases that are consumed by real-world applications. The main
objective of the methodology is to ensure that the periodically generated datasets (e.g., on
a daily basis) meet the quality requirements of the use cases. The methodology
consists of two main phases: (i) exploratory testing of the KB using dataset statistics and
common patterns, and (ii) fine-grained analysis of the KB aligned with the quality
requirements.
3.1</p>
      <sec id="sec-3-1">
        <title>Exploratory testing</title>
        <p>
          Exploratory testing (also known as ad-hoc testing) is a branch of blackbox software
testing where the testers simultaneously learn, design and execute tests in an exploratory
manner [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. In exploratory software testing, a tester would explore the software
capabilities without a pre-defined test plan and design the tests on the fly based on the
        </p>
        <sec id="sec-3-1-1">
          <title>4 https://jenkins-ci.org</title>
          <p>
            information gained while testing. This same idea, which is quite successful in the
software industry [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ], can be adapted to testing knowledge bases. In knowledge bases,
exploratory testing can be performed by a tester by executing different queries on the
knowledge base, analyzing them, and incrementally planning more queries based on the
knowledge acquired. This requires the testers to write a lot of boiler-plate queries for
extracting information about different aspects such as the usage of classes or properties
of different vocabularies or other patterns in the knowledge base. This process can be
accelerated and made more efficient using a set of query templates that extract statistics
about the knowledge base or the patterns of vocabulary usage. These query templates
can extract both statistics that are generic such as the number of triples in the
knowledge base, the number of instances of a specific class (e.g., the number of bus stops or
the number of business places that belong to the category restaurant). In addition
to finding defective patterns, by observing the evolution of these values after each new
deployment, one can monitor the growth of the knowledge base.
          </p>
          <p>Testers can explore the statistics of the knowledge base and identify potential
outliers. For example, all instances of a given class can be analyzed for checking what
are the properties that are used with those instances and their cardinality. Concretely, a
tester can analyze what is the cardinality of the geo location properties associated with
the instances of the dul:Place class that belong to the YelpBusiness category.
Whilst exploring the data instances, a tester might identify that there are certain
individuals that have multiple geo location properties or some individuals without a geo
location property even though the most common pattern is to have exactly one geo
location property. This could indicate a quality problem in the knowledge base and the
tester may report this to the developers to find the root cause of this inconsistency so
that the developers correct the errors in the knowledge base generation process. Further,
this indicates the need for including fine-grained analysis tests for this property so that
if the same errors are repeated, they will be detected again. Thus, exploratory testing is
complementary to fine-grained testing.</p>
          <p>Furthermore, it is possible to analyze the subjects and objects of all the triples
containing a given property, which enables to count the number of IRIs and blank nodes
related by this property for all subjects, and to analyze the type of each subject. This
information allows the exploratory tester to identify cases where the data does not fit
a priori the schema (e.g., violation of domain and range constraints) or other concrete
modelling decisions (e.g., no blank nodes used) that were made during the use case
requirements phase.</p>
          <p>Exploratory testing of the KB allows to identify incorrect values such as outliers.
For example, if more than 99% of the values of the schema:interactionCount
property are positive integers but one finds two negative values for this property, it is
recommended to look into those two particular values. As discussed above, the goal of
the first phase of the approach is to adapt exploratory testing for maintaining quality of
the knowledge base generation process.
3.2</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>Fine-grained Analysis of a KB</title>
        <p>The goal of the fine-grained analysis of the KB is to perform a more systematic analysis
using a set of test queries that are KB-specific. These test queries are run automatically
every time a new version of the KB is generated and if any defects are found, they are
reported to the developers. Fine-grained testing follows a similar approach to unit tests
in software engineering in which tests are incorporated to the knowledge base through
a continuous integration process.</p>
        <p>Similar to the software engineering process, these tests are planned and designed in
advance based on the constraints and validation rules of the KB and on the requirements
of different use cases of the application that are built on top of the KB. These
finegrained test scripts can check various quality dimensions such as syntactic validity,
consistency, completeness, or correctness. For instance, for syntactic validity, certain
values such as the location URI are checked for well-formed URI strings or the values
of date fields are checked for correct date formats with a data-type declaration.</p>
        <p>Regarding consistency, the 3cixty data model requires mandatory properties for
some entities. For example, all entities of type dul:Place or lode:Event must
have geo-coordinates (using respectively the geo:location or lode:inSpace
property). Thus, tests are included to verify that all instances of dul:Place or lode:Event
have such a property. Similarly, other cardinality restrictions and functional properties
can be converted into tests in the fine-grained analysis. For instance, all entities of type
dul:Place or lode:Event must also have exactly one lode:poster property
while all entities of type lode:Event must have at most one dc:title per
language.</p>
        <p>For completeness, the knowledge base can be checked to see whether it contains all
the entities of a given type. For instance, the number of bus stops (or metro stations)
in Milan is known. Therefore, a test can be included to check if the knowledge base
contains information about all bus (metro) stops in Milan. However, it is important to
update regularly such tests whenever those values change so the tests are synchronized
with the context of the knowledge base.</p>
        <p>Different facts in the knowledge base can be checked for correctness using different
techniques. For example, the latitude (geo:lat) and longitude (geo:long) property
values of places in a given city must belong to a particular range (greater than a lower
bound and lesser than an upper bound) corresponding to the city bounding box area.
Hence, for each city described in the knowledge base, tests can be included to identify
the entities that are a priori located outside of the city grid.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Implementation: Loupe and SPARQL Interceptor</title>
      <p>The two-fold methodology described in the previous section has been implemented
using two tools: Loupe and SPARQL Interceptor.
4.1</p>
      <sec id="sec-4-1">
        <title>Loupe</title>
        <p>Loupe5 is a tool that supports the inspection of datasets to understand which
vocabularies (classes and properties) are used, including statistics and frequent triple patterns.
Starting from high-level statistics, Loupe allows a tester to dig into details down to the</p>
        <sec id="sec-4-1-1">
          <title>5 http://loupe.linkeddata.es</title>
          <p>corresponding triples and analyze potential quality problems. As illustrated in Figure 1,
Loupe consists of two main components: (a) Loupe Core and (b) Loupe UI (User
Interface). In order to make the knowledge-base inspection seamless and more efficient,
Loupe performs an initial indexing of the statistics and the indexed statistics and
patterns are stored in an Elasticsearch server. Loupe makes also use of a docker image
of a Virtuoso server6 to ease the indexing process, given an RDF dump, and to avoid
overloading the public SPARQL endpoint of the knowledge base.</p>
          <p>Once the knowledge base is indexed, the Loupe UI provides an intuitive web
interface for exploratory testers to inspect the knowledge base. Loupe UI consumes the index
generated by Loupe Core and generates several UI components including a summary, a
class explorer, a property explorer, a triple pattern explorer, and an ontology explorer.
Each of these UI components provides several levels of information starting from
highlevel overviews and then allowing users to navigate into further details. Loupe UI allows
testers to identify the different defective patterns that were described in Section 3.1.</p>
          <p>Fig. 1. Loupe: The Linked Data Inspector
4.2</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>SPARQL Interceptor</title>
        <p>SPARQL Interceptor7 integrates a set of user-defined SPARQL queries (namely unitary
tests for an RDF dataset) inside the Jenkins continuous integration system. SPARQL
queries are defined by the dataset developers, with the objective of checking whether
some specific characteristics hold in the released dataset. For example, one may want
to check that a property is systematically valued for a particular entity: in 3cixty, all
entities of type dul:Place must have geo-coordinates. One may also want to check</p>
        <sec id="sec-4-2-1">
          <title>6 https://hub.docker.com/r/nandana/virtuoso-oss-7-loupe/</title>
          <p>7 A deployed instance is available at http://alzir.dia.fi.upm.es:8080
that all entities are encompassed in a particular geographical coverage: in 3cixty, a city
is delimited by a rectangular bounding box area and all entities of type dul:Place
must be geolocalized within this bounding box. These queries are evaluated regularly,
something that is done automatically by Jenkins, and summary reports are provided on
the compliance of the outputs of these query evaluations with the expected results as
described in the definition of the queries. Queries can then check both schema
inconsistencies and data instances. The Figure 2 shows a snapshot of the SPARQL Interceptor
in a real setting. Error logging follows the conventional presentation layout provided in</p>
          <p>Jenkins with a general status of the build and a breakdown per test. For each of the failed
tests, the system provides the reason for the failure, plus a description of the query and
a link to execute it against the SPARQL endpoint, which is useful for the expert while
checking the obtained results.
5</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Discussion and Lessons Learned</title>
      <p>We use both Loupe and SPARQL Interceptor over six months to monitor the continuous
deployment of the evolving 3cixty knowledge base which was at the same time used
by a real application available to the million potential visitors of EXPO 2015. In this
section, we report on some lessons learned, either frequent errors that we observe over
iterative deployments of the knowledge base, or additional functionalities that Loupe
and SPARQL Interceptor could provide.</p>
      <p>
        One of the challenges that the testers have, when using Loupe for exploratory
testing, is to find the initial set of uncommon patterns so that they can explore more to
find potential defects. This happens specially when the knowledge base under test is
significantly large (both in the amount of facts as well as the number of different
vocabularies used) and when the tester does not have sufficient domain knowledge about the
knowledge base. We consider two different approaches for addressing this challenge.
On the one hand, Loupe can provide reports that highlight the uncommon patterns and
potential outliers. These reports can use different outlier detection techniques such as
population distribution based approaches or Local Outlier Factor (LOF) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We
envision that these reports will significantly reduce the amount of time spent to find the
potential outliers and allowing more time to analyze them and dig into more details.
The testers can identify the possible natural outliers (unusual values or patterns that are
indeed correct values, i.e., false positives) using external information resources about
the city and only analyze and report the erroneous outliers. This feature is planned as
future work in the roadmap of Loupe. Alternatively, another approach requested by some
testers to handle the same problem is to provide the ability to export the knowledge
base statistics in a data exchange format such as CSV so that they can analyze some
suspecting value populations or patterns in a tool of their choice such as R or Excel.
This allows testers to use some of the tools and techniques that they are familiar with to
analyze the data.
      </p>
      <p>One challenge in designing fine-grained tests is to keep them synchronized with the
external data sources being used to build the knowledge base. Some tests, such as the
ones related to cardinality of the data model, are sometimes precise and include exact
values, while others are values greater or lesser than a certain threshold. For instance, if
we consider the number of bikes available in a given place, such a value changes over
time, therefore setting up a priori threshold may not be effective or it would require a
certain degree of abstraction that a highly dynamic context would not support. On the
expert side, a plethora of error messages is something that we avoid, thus constraining
the fine-grained test query types to checking to:
presence of unexpected properties or property values Evaluate against a Boolean value.</p>
      <p>In 3cixty, we are interested in points of interest that have an added value for the
users and we delete in particular all places that are categorized as residential places
that we have harvested during the scraping process. Therefore, we check using a
unit test that no more ”home places” are present in the KB once deployed;
presence of properties Evaluate against a Boolean value. In 3cixty, both Place-type
and Event-type instances have required properties so we check whether there are
instances with missing values for those required properties or not;
presence of duplicated properties Evaluate against a Boolean value. In 3cixty, some
properties cannot have more than one value so we check whether there are
duplicates in the property set or not;
syntax Evaluate against a Boolean value. These tests check the syntax of the data value;
presence of unsolicited instances Evaluate against a Boolean value. These tests check
whether an instance is present despite it should not, for example, Place-type
instances that do not belong to any cell contained in the grid;
number of graphs Evaluate against a cardinal number. In 3cixty, data is always
associated to a publisher graph which enables to check that proper attribution has been
made;
number of instances/properties Evaluate against a cardinal number. These tests
enable to check that the right number of properties is being used in a particular 3cixty
deployment.</p>
      <p>This classification offers a general picture of the types of query that are been tested
in the 3cixty platform. Those benchmark queries are classified into: i) generic test
queries and ii) city-related test queries (such as the ones evaluating the number of
instances/properties that depend on the final numbers we can observe in the given city).
SPARQL Interceptor visualizes such a classification in the UI, grouping the queries
according to the domain and the city (namely Milan, London, Nice in the case of 3cixty).
Despite that this was necessary in analysing the KB and the different components, this
has increased the complexity for the KB developers in generalizing as much as possible
the queries and, thus, evaluating them.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>This paper presents a two-fold approach for ensuring the quality of dynamic knowledge
bases that evolve continuously. This approach is inspired by several popular techniques
in software engineering such as exploratory testing and continuous integration. Based
on our experiences in the 3cixty use case, we conclude that these practices of software
engineering can be adapted to knowledge-base generation. They help to maintain the
quality of a KB while allowing its rapid evolution. We advocate a two-phase approach
enabling to provide an overview of the evolution of a KB and a fine-grained analysis.
We have described Loupe and SPARQL Interceptor, two tools that provide the necessary
features for performing this two-phase approach.</p>
      <p>Future work for Loupe includes improvements in (a) generation of quality reports,
(b) utilization of machine learning techniques for (semi)-automatic detection of
outliers and potentially defective patterns, (c) improvements to the visualizations. About
the fine-grained analysis, future research activities will be carried out to explore the
automatic generation of KB-specific test queries. This will save time in the generation
ad-hoc queries, and this will attract the attention of the expert or developers in updating
the queries and correctly checking the number of instances or properties being recently
deployed. We will also consider expressing the SPARQL Interceptor test queries using
the new Shapes Constraint Language (SHACL8) being standardized by W3C.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments References</title>
      <p>This work was partially supported by the FPI grant (BES-2014-068449), the innovation
activity 3cixty (14523) of EIT Digital, and the 4V project (TIN2013-46238-C4-2-R).</p>
      <sec id="sec-7-1">
        <title>8 https://www.w3.org/TR/shacl/</title>
        <p>Mihindukulasooriya et al.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Assaf</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troncy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Senart</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>An Objective Assessment Framework &amp; Tool for Linked Data Quality: Enriching Dataset Profiles with Quality Indicators</article-title>
          .
          <source>International Journal on Semantic Web and Information Systems (IJSWIS)</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cyganiak</surname>
          </string-name>
          , R.:
          <article-title>Quality-driven information filtering using the WIQA policy framework</article-title>
          .
          <source>Web Semantics: Science, Services and Agents on the World Wide Web</source>
          <volume>7</volume>
          (
          <issue>1</issue>
          ),
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Bo¨ hm,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Naumann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Abedjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Fenz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            , Gru¨ tze, T.,
            <surname>Hefenbrock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            ,
            <surname>Pohl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Sonnabend</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          :
          <article-title>Profiling linked open data with ProLOD</article-title>
          .
          <source>In: 26th IEEE International Data Engineering Workshops (ICDEW)</source>
          . pp.
          <fpage>175</fpage>
          -
          <lpage>178</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Williams</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Agile software development: it's about feedback and change</article-title>
          .
          <source>Computer</source>
          <volume>36</volume>
          (
          <issue>6</issue>
          ),
          <fpage>39</fpage>
          -
          <lpage>43</lpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Duvall</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matyas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Glover</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Continuous integration: improving software quality and reducing risk</article-title>
          .
          <source>Pearson Education</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ermilov</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martin</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Linked open data statistics: Collection and exploitation</article-title>
          .
          <source>In: 4th International Conference on Knowledge Engineering and the Semantic Web (KESW)</source>
          . pp.
          <fpage>242</fpage>
          -
          <lpage>249</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Feeney</surname>
            ,
            <given-names>K.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>O'Sullivan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tai</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brennan</surname>
          </string-name>
          , R.:
          <article-title>Improving curated web-data quality with structured harvesting and assessment</article-title>
          .
          <source>International Journal on Semantic Web and Information Systems (IJSWIS) 10(2)</source>
          ,
          <fpage>35</fpage>
          -
          <lpage>62</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fleischhacker</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paulheim</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bryl</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , Vo¨ lker, J.,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Detecting errors in numerical linked data using cross-checked outlier detection</article-title>
          .
          <source>In: The Semantic Web-ISWC</source>
          <year>2014</year>
          , pp.
          <fpage>357</fpage>
          -
          <lpage>372</lpage>
          . Springer (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Foemmel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Continuous integration</article-title>
          .
          <source>Thought-Works</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Itkonen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Ma¨ntyla¨,
          <string-name>
            <given-names>M.V.</given-names>
            ,
            <surname>Lassenius</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>Defect detection efficiency: Test case based vs. exploratory testing</article-title>
          .
          <source>In: Empirical Software Engineering and Measurement</source>
          ,
          <year>2007</year>
          .
          <article-title>ESEM 2007</article-title>
          . First International Symposium on. pp.
          <fpage>61</fpage>
          -
          <lpage>70</lpage>
          . IEEE (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Itkonen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rautiainen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Exploratory testing: a multiple case study</article-title>
          .
          <source>In: International Symposium on Empirical Software Engineering</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kontokostas</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Westphal</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hellmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cornelissen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaveri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Test-driven Evaluation of Linked Data Quality</article-title>
          .
          <source>In: 23rd World Wide Web Conference (WWW)</source>
          . pp.
          <fpage>747</fpage>
          -
          <lpage>758</lpage>
          . ACM (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Kontokostas</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaveri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
          </string-name>
          , J.:
          <article-title>Triplecheckmate: A tool for crowdsourcing the quality assessment of linked data</article-title>
          .
          <source>In: 4th International Conference on Knowledge Engineering and the Semantic Web (KESW)</source>
          . pp.
          <fpage>265</fpage>
          -
          <lpage>272</lpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mendes</surname>
            ,
            <given-names>P.N.</given-names>
          </string-name>
          , Mu¨hleisen, H.,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Sieve: linked data quality assessment and fusion</article-title>
          . In: 15th International
          <string-name>
            <surname>Joint</surname>
            <given-names>EDBT</given-names>
          </string-name>
          /ICDT Workshops. pp.
          <fpage>116</fpage>
          -
          <lpage>123</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Mihindukulasooriya</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Villalon</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          , Garc´
          <fpage>ıa</fpage>
          -Castro,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Gomez-Perez</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Loupe-An Online Tool for Inspecting Datasets in the Linked Data Cloud</article-title>
          .
          <source>In: 14th International Semantic Web Conference (ISWC)</source>
          , Posters &amp; Demonstrations
          <string-name>
            <surname>Track</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Nerur</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mahapatra</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mangalaraj</surname>
          </string-name>
          , G.:
          <article-title>Challenges of migrating to agile methodologies</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>48</volume>
          (
          <issue>5</issue>
          ),
          <fpage>72</fpage>
          -
          <lpage>78</lpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Palmonari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rula</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porrini</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maurino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spahiu</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferme</surname>
          </string-name>
          , V.:
          <article-title>ABSTAT: Linked Data Summaries with ABstraction and STATistics</article-title>
          .
          <source>In: 12th Extended Semantic Web Conference (ESWC)</source>
          ,
          <source>Posters &amp; Demonstrations Track</source>
          . pp.
          <fpage>128</fpage>
          -
          <lpage>132</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Rizzo</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Troncy</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jameson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ballesteros</surname>
            <given-names>Hermida</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Assaf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Barbu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Spirescu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Kuhn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Celino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Agarwal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Pathak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Scanu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Valla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Haaker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Verga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Rossi</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Redondo</given-names>
            <surname>Garcia</surname>
          </string-name>
          ,
          <source>J.: 3cixty@Expo Milano</source>
          <year>2015</year>
          :
          <article-title>Enabling Visitors to Explore a Smart City</article-title>
          .
          <source>In: 14th International Semantic Web Conference (ISWC)</source>
          ,
          <source>Semantic Web Challenge</source>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Rula</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zaveri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Methodology for Assessment of Linked Data Quality</article-title>
          .
          <source>In: Workshop on Linked Data Quality</source>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Strong</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Beyond accuracy: What data quality means to data consumers</article-title>
          .
          <source>Journal of management information systems 12(4)</source>
          ,
          <fpage>5</fpage>
          -
          <lpage>33</lpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Zaveri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rula</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maurino</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pietrobon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Quality assessment for linked data: A survey</article-title>
          .
          <source>Semantic Web Journal</source>
          <volume>7</volume>
          (
          <issue>1</issue>
          ),
          <fpage>63</fpage>
          -
          <lpage>93</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>