application integration with the w3c linked data standards

18
Center for Open Middleware Center for Open Middleware Application integration with the W3C Linked Data standards Nandana Mihindukulasooriya Universidad Politécnica de Madrid [email protected] @ nandanamihindu Día W3C en EspañaDecember 18 th , 2013

Upload: nandana-mihindukulasooriya

Post on 14-Jan-2015

533 views

Category:

Technology


1 download

DESCRIPTION

Linked Data Platform specification aims to define a set of HTTP protocol extensions for accessing, updating, creating and deleting resources from servers that expose their resources as Linked Data. This presentation looks at how the Linked Data Platform can be used for application integration.

TRANSCRIPT

Page 1: Application integration with the W3C Linked Data standards

Center for Open Middleware

Center for Open Middleware

Application integration with the W3C Linked Data standards

Nandana Mihindukulasooriya

Universidad Politécnica de Madrid

[email protected]

@nandanamihindu

Día W3C en EspañaDecember 18th, 2013

Page 2: Application integration with the W3C Linked Data standards

Center for Open Middleware

2

Evolution of Application Integration

http://www.immortalhumans.com/wp-content/uploads/Evolution-11.jpg

Page 3: Application integration with the W3C Linked Data standards

Center for Open Middleware

3

Linked Data

• Connecting data distributed across the Web• Similar to how documents are connected using hyperlinks to set up an

hypertext web

• Based on four rules defined by Tim Berners Lee [1]:1. Use URIs as names for things

2. Use HTTP URIs so that people can look up those names.

3. When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)

4. Include links to other URIs, so that they can discover more things

[1] http://www.w3.org/DesignIssues/LinkedData.html

[2] Linking Open Data cloud diagram, by Richard Cyganiak

and Anja Jentzsch. http://lod-cloud.net/

Page 4: Application integration with the W3C Linked Data standards

Center for Open Middleware

4

Why Linked Data ?

• Global identifiers that are dereferenceable • Easily accessible data using HTTP• Reconciliation of duplicate data• Avoid data silos

• Use of standards • Interoperability

• Flexible graph based RDF data model • Easy to merge data from different sources • Multiple schemas can live together • Easy to evolve

• Typed links between data from different sources • Ability to traverse through data to find more information and context

• Richer knowledge representation and modeling• Mappings without complex transformations

• By adding more information rather than converting data

No silver bullets

Page 5: Application integration with the W3C Linked Data standards

Center for Open Middleware

5

Linked Data specifications

• Advanced modeling• OWL

Domain Specification

Protocol HTTP

Data model RDF(S)

Serializations RDF/XMLTurtleTriGRDFaJSON-LD

Query SPARQL

W3C Linked Data Platform

Page 6: Application integration with the W3C Linked Data standards

Center for Open Middleware

6

Linked Data Platformhttp://www.w3.org/2012/ldp/

• RESTful protocol for Read / Write Linked Data

• Extensions to HTTP protocol • Pagination, ordering, partial updates, introspection, creation factories, collections

• Standardization focused of interoperability

• Developed by W3C Linked Data Platform Working Group• 54 participants from 32 organizations

• Industry: IBM, Oracle, EMC, Fujitsu, OpenLink Software, Base22, …• Academia: Universidad Politécnica de Madrid, University of Oxford, DERI, Université de Lyon, INRIA,

• Progress:• Several public working drafts are available • On its way to a Candidate Recommendation

• Current and potential implementations: • OpenLink Virtuoso, Eclipse Lyo, ALM iStack middleware, Apache Marmotta, Callimachus,

Tabulator, rdflib.js, RWW.IO, …

Page 7: Application integration with the W3C Linked Data standards

Center for Open Middleware

7

An example: BugLinks An LDP-enabled bug tracker

OPTIONS

OPTIONS

Page 8: Application integration with the W3C Linked Data standards

Center for Open Middleware

8

Looking up for the projectGET /bug-tracker/alm-istack HTTP/1.1

Host: example.org

Accept: text/turtle; charset=UTF-8

HTTP/1.1 200 OK

Content-Type: text/turtle; charset=UTF-8

Link: <http://www.w3.org/ns/ldp/Container>; rel="type"

ETag: W/"123456789"

@prefix dcterms: <http://purl.org/dc/terms/>.

@prefix ldp: <http://www.w3.org/ns/ldp#>.

@prefix bt: <http://www.example.org/vocab#>.

</bug-tracker/alm-istack> a ldp:SimpleContainer, bt:ProductDescription;

dcterms:title "A collection of bug reports on ALM iStack project";

bt:developer </user/johndoe>;

ldp:contains </bug-tracker/alm-istack/bug3>;

ldp:contains </bug-tracker/alm-istack/bug4> .

Page 9: Application integration with the W3C Linked Data standards

Center for Open Middleware

9

Looking up for the project with many bugs (Paging)

GET /bug-tracker/buggy-product HTTP/1.1

Host: example.org

Accept: text/turtle; charset=UTF-8

HTTP/1.1 303 See Other

Location: /bug-tracker/buggy-product?firstpage

Link: <http://www.w3.org/ns/ldp/Container>; rel="type"

Page 10: Application integration with the W3C Linked Data standards

Center for Open Middleware

10

HTTP/1.1 200 OK

Content-Type: text/turtle; charset=UTF-8

Link: <http://www.w3.org/ns/ldp/Resource>; rel="type“

Link: </bug-tracker/buggy-product?secondpage>; rel='next'

ETag: W/"123456789“

@prefix ldp: <http://www.w3.org/ns/ldp#>.

@prefix bt: <http://www.example.org/vocab#>.

<bug-tracker/buggy-product> a ldp:SimpleContainer,bt:ProductDescription;

ldp:contains </bug-tracker/alm-istack/bug1>;

ldp:contains </bug-tracker/alm-istack/bug200> .

Looking up for the project with many bugs (Paging) II

GET /bug-tracker/buggy-product?firstpage HTTP/1.1

Host: example.org

Accept: text/turtle; charset=UTF-8

Under discussion

Page 11: Application integration with the W3C Linked Data standards

Center for Open Middleware

11

Creating a new bug reportPOST /bug-tracker/alm-istack HTTP/1.1

Host: example.org

Content-Type: text/turtle

@prefix dcterms: <http://purl.org/dc/terms/>.

@prefix bt: <http://www.example.org/vocab#>.

<> a bt:BugReport;

dcterms:title "Server crashed";

dcterms:creator </user/janedoe> .

HTTP/1.1 201 Created

Location: /bug-tracker/alm-istack/bug5

Link: <http://www.w3.org/ns/ldp/Resource>; rel="type"

ETag: W/"123456789"

Content-Length: 0

Page 12: Application integration with the W3C Linked Data standards

Center for Open Middleware

12

Looking up for a project (again)GET /bug-tracker/alm-istack HTTP/1.1

Host: example.org

Accept: text/turtle; charset=UTF-8

HTTP/1.1 200 OK

Content-Type: text/turtle; charset=UTF-8

Link: <http://www.w3.org/ns/ldp/Container>; rel="type"

ETag: W/“223456789"

@prefix dcterms: <http://purl.org/dc/terms/>.

@prefix ldp: <http://www.w3.org/ns/ldp#>.

@prefix bt: <http://www.example.org/vocab#>.

</bug-tracker/alm-istack> a ldp:SimpleContainer, bt:ProductDescription;

dcterms:title "A collection of bug reports on ALM iStack project";

ldp:contains </bug-tracker/alm-istack/bug3> ;

ldp:contains </bug-tracker/alm-istack/bug4> ;

ldp:contains </bug-tracker/alm-istack/bug5> .

Page 13: Application integration with the W3C Linked Data standards

Center for Open Middleware

13

Looking up for a bug reportGET /bug-tracker/alm-istack/bug5 HTTP/1.1

Host: example.org

Accept: text/turtle; charset=UTF-8

HTTP/1.1 200 OK

Content-Type: text/turtle; charset=UTF-8

Link: <http://www.w3.org/ns/ldp/Resource>; rel="type"

ETag: W/"123456789"

@prefix dcterms: <http://purl.org/dc/terms/>.

@prefix ldp: <http://www.w3.org/ns/ldp#>.

@prefix bt: <http://www.example.org/vocab#>.

</bug-tracker/alm-istack/bug5> a bt:BugReport;

dcterms:title "Server crashed";

dcterms:creator </user/janedoe>;

dcterms:created "2013-05-05T10:00"^^xsd:dateTime;

bt:state bt:New .

.

Page 14: Application integration with the W3C Linked Data standards

Center for Open Middleware

14

ALM iStack Project

Objective:

To evaluate and foster the adoption of Linked Data technologies as the means for facilitating real-time Application Lifecycle Management tool integration in enterprise-grade environments.

Center for Open Middleware

Page 15: Application integration with the W3C Linked Data standards

Center for Open Middleware

15

Architecture of the Proof-of-Concept

Page 16: Application integration with the W3C Linked Data standards

Center for Open Middleware

16

Enterprise readiness

VALIDATION

TRANSACTIONS

SECURITY

DESIGN PATTERNS &

ANTI-PATTERNS

APPLICATION MODELS

DISCOVERY & INTROSPECTI

ON

VOCABULARY

MANAGEMENT

VERSIONING

PROVENANCE

IDENTITY MANAGEME

NT

PERFORMANCE

OPTIMIZATION

TESTING

PARTIAL RETRIEVALS & UPDATES

Page 17: Application integration with the W3C Linked Data standards

Center for Open Middleware

17

Final remarks • Linked Data can be a good approach when the

integrations are data intensive• Service orientation vs. Data / Resource orientation

• Linked Data Platform as a standard RESTful protocol for read/write Linked Data

• Supported by the industry• OSLC / IBM Rational Jazz• EU projects (PPP/FP7): CESAR, iFEST, CRYSTAL

• Some work to be done on enterprise Quality of Service requirements

Page 18: Application integration with the W3C Linked Data standards

Center for Open Middleware

Center for Open Middleware

Thank You !Application integration with

the W3C Linked Data standards

Raúl García Castro,

Miguel Esteban Gutiérrez,

Nandana Mihindukulasooriya