<!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 Linked Data Platform adapter for the Bugzilla issue tracker</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nandana Mihindukulasooriya</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Miguel Esteban-Gutierrez</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raul Garc a-Castro</string-name>
          <email>rgarcia@fi.upm.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Center for Open Middleware Ontology Engineering Group, Escuela Tecnica Superior de Ingenieros Informaticos Universidad Politecnica de Madrid</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The W3C Linked Data Platform (LDP) speci cation de nes a standard HTTP-based protocol for read/write Linked Data and provides the basis for application integration using Linked Data. This paper presents an LDP adapter for the Bugzilla issue tracker and demonstrates how to use the LDP protocol to expose a traditional application as a read/write Linked Data application. This approach provides a exible LDP adoption strategy with minimal changes to existing applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>integrating ALM tools by using the LDP protocol and this paper presents an
LDP adapter developed to LDP-enable the Bugzilla3 issue tracker.
2</p>
    </sec>
    <sec id="sec-2">
      <title>An LDP adapter for Bugzilla</title>
      <p>The three main alternatives for LDP-enabling an application are: (a) native
support built into the application; (b) an application plugin; and (c) an LDP
adapter. Providing native support requires modi cation to the application and
not all applications allow extensions through plugins. As we have seen in the
early stages of web services [4], adapters provide a more exible mechanism to
gradually adopting a technology while using the existing tools with minimum
changes, and we have leveraged this approach.</p>
      <p>An application is de ned in terms of its data model and business logic. An
LDP-enabled application exposes the data as Linked Data and allows to drive
its business logic following the REST design principles. Thus to LDP-enable
an application, its data model should be expressed in RDF by mapping it to a
new ontology or by reusing existing vocabularies. In the Bugzilla adapter, the
Bugzilla native data model is mapped to the ALM iStack ontology4. The adapter
exposes the Bugzilla data as LDP resources by transforming the data between
the ALM iStack ontology and the Bugzilla native model so that LDP clients can
consume RDF data from Bugzilla as if it was a native LDP application.</p>
      <p>The Bugzilla LDP adapter, which is a JavaEE web application, consists of
three main layers: (a) LDP layer, (b) transformation layer, and (c) application
gateway layer, as illustrated in Figure 1.</p>
      <p>The LDP layer handles the LDP communications and exposes the Bugzilla
data as LDP resources. This layer is built using the LDP4j framework5 which
provides a middleware for the development of read/write Linked Data
applications [5]. The concepts such as bugs, products, product versions, and users
are mapped to LDP containers which list these entities and allow creating new
entities. Each entity such as a bug, a product, or a user is mapped to an LDP
resource with its own URI that can be used by clients to access them.</p>
      <p>The transformation layer handles data validation and transformation.
This includes extracting information from RDF data, validating them based
on application restrictions, and mapping them to the Bugzilla model. The ALM
iStack ontology is generic so that it can be used with other issue trackers (e.g.,
JIRA6, Redmine7); thus there is an impedance mismatch between the ontology
and the Bugzilla native model which is managed by the adapter.</p>
      <p>The application gateway layer handles the communication with the
Bugzilla instance using its XML-RPC remote interface. Because the Bugzilla bug
tracker is also accessed using its web UI, the adapter synchronizes with the
3 http://www.bugzilla.org/
4 http://delicias.dia.fi.upm.es/ontologies/alm-istack.owl
5 http://www.ldp4j.org/
6 https://www.atlassian.com/software/jira
7 http://www.redmine.org/</p>
      <p>A Linked Data Platform Adapter for Bugzilla
Bugzilla instance based on user-de ned policies. In addition there are several
cross-cutting services such as con guration management, consistency, security,
and synchronization which are utilized by multiple layers.
This demonstration shows how LDP clients can use the adapter to access the
Bugzilla bug tracker and to perform tasks such as discovering bugs reported
against a product, modifying the status or the other properties of the bug, or
creating new bugs (e.g., Fig. 2 shows a creation request and response).</p>
      <p>
        For example, a continuous integration server in an integrated ALM setting
encounters a build failure. Thus, the \integration server agent " (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) wants to
report a defect (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) titled \Bugzilla adapter build is broken " (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) with
description \Bugzilla adapter build fails due to a test failure " (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) for the \version 1.0
of the Bugzilla Adapter " product (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) that is related to the \issue 730698 " in
\https://bugzilla.mozilla.org/ " (6). The LDP client converts this message to an
LDP request according to the ALM iStack ontology as shown in Figure 2.
      </p>
      <p>Once this request is received by the adapter, it extracts the necessary
information, transforms it into the Bugzilla model using a mapping between the
ontology and Bugzilla models, and creates a bug in the Bugzilla instance using
its remote XML-RPC interface. Once created, the Bugzilla instance returns the
identi er for the bug inside Bugzilla. Then, the adapter generates an URI for
the bug and manages the mapping between the identi er given by the Bugzilla
and the URI. Any information that does not t into the Bugzilla model such as
links to external applications is maintained in the adapter. Finally, the adapter
returns the URI using the Location header (7) and lets the client know it is an
LDP resource using the \type" link relation (8) according to the LDP protocol.</p>
      <p>The LDP client or other external applications can access and link to the bug
using the URI returned by the adapter. In addition, clients can modify the bug
using the PUT operation with modi ed RDF data which then will be propagated
to the Bugzilla instance following a similar process.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Conclusion</title>
      <p>In this paper, we presented the Bugzilla LDP adapter and provided an overview
of how to build adapters for LDP-enabling existing applications in order to use
them as read/write Linked Data applications. With minimal changes to the
existing application, the Bugzilla LDP adapter enables semantic integration of
the Bugzilla tool with other LDP-enabled applications and makes possible to
have typed links between application data.</p>
      <p>Acknowledgments: The authors are partially supported by the ALM iStack
project of the Center for Open Middleware.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Speicher</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arwe</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malhotra</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Linked Data Platform 1.0 (June 2014) W3C Candidate Recommendation</article-title>
          , http://www.w3.org/TR/ldp/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Mihindukulasooriya</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garc</surname>
            a-Castro,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Esteban-Gutierrez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Linked Data Platform as a novel approach for Enterprise Application Integration</article-title>
          .
          <source>In: Proceedings of the 4th International Workshop on Consuming Linked Data (COLD2013)</source>
          , Sydney, Australia (Oct
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Heath</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Linked Data: Evolving the Web into a Global Data Space</article-title>
          .
          <article-title>Synthesis lectures on the semantic web: theory and technology 1(1) (</article-title>
          <year>2011</year>
          )
          <volume>1</volume>
          {
          <fpage>136</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casati</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grigori</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nezhad</surname>
            ,
            <given-names>H.R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toumani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Developing adapters for web services integration</article-title>
          .
          <source>In: Advanced Information Systems Engineering</source>
          , Springer (
          <year>2005</year>
          )
          <volume>415</volume>
          {
          <fpage>429</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Esteban-Gutierrez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mihindukulasooriya</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garc</surname>
            a-Castro,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>LDP4j: A framework for the development of interoperable read-write Linked Data applications</article-title>
          .
          <source>In: Proceedings of the 1st ISWC Developers Workshop, Riva del Garda</source>
          ,
          <source>Italy (Oct</source>
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>