The W3C Linked Data Platform (LDP) specification defines a standard HTTP-based protocol for read/write Linked Data and provides the basis for application integration using Linked Data. This poster 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 flexible LDP adoption strategy with minimal changes to existing applications.
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Linked data platform adapter for bugzilla poster
1. A Linked Data Platform adapter
for the Bugzilla issue tracker
Nandana Mihindukulasooriya, Miguel Esteban Gutiérreź, Raúl García Castro
Ontology Engineering Group, Center for Open Middleware
Universidad Politécnica de Madrid, Spain
{nmihindu, mesteban, rgarcia}@fi.upm.es
The W3C Linked Data Platform (LDP) specification defines a standard HTTP-based protocol for read/write Linked Data
and provides the basis for application integration using Linked Data. LDP applications map their data model to Linked Data
resources and the application state is driven using the resources adhering the REST architectural style.
Goal: demonstrate how to use the LDP protocol to expose a traditional application as a read/write Linked Data application
with minimal changes to the existing application.
An LDP adapter for Bugzilla
The adapter exposes the Bugzilla
application data as LDP Resources by
transforming the native application data to
Linked Data using the ALM iStack ontology.
This allows LDP clients to consume RDF
data from Bugzilla as if it was a native LDP
application.
Main components:
• LDP Layer
• Transformation Layer
• Application Gateway Layer
LDP4j
http://ldp4j.org
An open source Java-based framework for the development of read-write Linked Data applications based
on the W3C Linked Data Platform 1.0 (LDP) specification and available under the Apache 2.0 license.
The LDP layer of the Bugzilla adapter is built using the LDP4j framework.
Example scenarios
The “integration server agent” (1) wants to report a defect (2) titled
“Bugzilla adapter build is broken” (3) with description “Bugzilla
adapter build fails due to a test failure” (4) for the “version 1.0 of the
Bugzilla Adapter” product (5) that is related to the “issue 730698” in
“https://bugzilla.mozilla.org/” (6) external application.
POST /ita/containers/bugs HTTP/1.1
Host: localhost
Content-Type: text/turtle
@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .
…rest of the namespace declarations are omitted for brevity.
<> a ai:ClientDefect;
dcterms:creator <http://localhost/ita/ldp/resources/users/9> ;
dcterms:title "Bugzilla adapter build is broken"^^xsd:string;
dcterms:description "Bugzilla adapter build fails due to a test failure"^^xsd:string;
oslc_asset:relatedAsset <http://localhost/ita/ldp/resources/productversions/16> ;
ai:relatedIncident <https://bugzilla.mozilla.org/show_bug.cgi?id=730698> .
HTTP/1.1 201 Created
Location: http://localhost/ita/ldp/resources/bugs/12
Link: <http://www.w3.org/ns/ldp#Resource>; rel='type'
Content-Length: 0
Request
Response
The adapter extracts the necessary information, transforms it to the
Bugzilla model, and creates a bug in the Bugzilla instance. The
adapter generates an URI for the bug and keeps a mapping between
the identifier given by the Bugzilla and the URI. Any information that
does not fit into the Bugzilla model such as links to external
applications is maintained in the adapter.
The URI of the newly created bug is returned 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.
a.) Product description retrieval
The “integration server agent” wants to display the title of the product
and the versions of the the Bugzilla Adapter” product (1) .
GET /ita/ldp/resources/products/5 HTTP/1.1
Host: localhost:8080
Accept: text/turtle
a.) Bug creation
HTTP/1.1 200 OK
Content-Type: text/turtle; charset=UTF-8
Link: <http://www.w3.org/ns/ldp#Resource>; rel="type"
ETag: W/"595482219"
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix alm_istack: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
<http://localhost:8080/ita/ldp/resources/products/5>
a alm_istack:Product ;
alm_istack:hasVersion
<http://localhost:8080/ita/ldp/resources/productversions/15>,
<http://localhost:8080/ita/ldp/resources/productversions/16>;
dcterms:title "Bugzilla Builds"^^xsd:string ;
dcterms:description "A sample project used in the Bugzilla builds of ALM iStack
project."^^xsd:string .
Upon the retrieval of request, the adapter converts the URI of the
product to the internal identifier known to the Bugzilla instance using a
map maintained by the adapter. Then using the that identifier, the
adapter extracts the metadata about the corresponding product using
the remote REST API provided by Bugzilla.
This data is then converted to RDF using the ALM iStack ontology and
a description of the product including its title (2) and the versions (3)
that it has returned using the RDF format that was requested.
8
3
2
1
4
5
6
7
1
3
2