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 Main components: LDP Layer Transformation Layer Application Gateway Layer LDP4j 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. 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. http://ldp4j.org 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 730698in 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. GET /ita/ldp/resources/products/5 HTTP/1.1 Host: localhost:8080 Accept: text/turtle The integration server agentwants to display the title of the product and the versions of the the Bugzilla Adapterproduct (1) . a.) Product description retrieval 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

description

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.

Transcript of Linked data platform adapter for bugzilla poster

Page 1: Linked data platform adapter for bugzilla poster

A Linked Data Platform adapter

for the Bugzilla issue tracker

Nandana Mihindukulasooriya, Miguel Esteban Gutiérrez, 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

Main components:

• LDP Layer

• Transformation Layer

• Application Gateway Layer

LDP4jAn 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.

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.

http://ldp4j.org

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.

GET /ita/ldp/resources/products/5 HTTP/1.1

Host: localhost:8080

Accept: text/turtle

The “integration server agent” wants to display the title of the product

and the versions of the the Bugzilla Adapter” product (1) .

a.) Product description retrieval

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