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.
Application integration with the W3C Linked Data standards
1. Center for
Open
Middleware
Application integration with
the W3C Linked Data standards
Día W3C en España
December 18th, 2013
Nandana Mihindukulasooriya
Universidad Politécnica de Madrid
nmihindu@fi.upm.es
@nandanamihindu
3. 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/
4. 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
No silver
bullets
• 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
5. Center for
Open
Middleware
5
Linked Data specifications
Domain
Specification
Protocol
HTTP
Data model
RDF(S)
Serializations
RDF/XML
Turtle
TriG
RDFa
JSON-LD
Query
SPARQL
• Advanced modeling
• OWL
W3C Linked Data Platform
6. Center for
Open
Middleware
6
Linked Data Platform
http://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, …
8. Center for
Open
Middleware
8
Looking up for the project
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/"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> .
9. 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"
10. Center for
Open
Middleware
10
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
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#>.
Under
discussion
<bug-tracker/buggy-product> a ldp:SimpleContainer,bt:ProductDescription;
ldp:contains </bug-tracker/alm-istack/bug1>;
…
ldp:contains </bug-tracker/alm-istack/bug200> .
11. Center for
Open
Middleware
11
Creating a new bug report
POST /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
12. 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> .
13. Center for
Open
Middleware
13
Looking up for a bug report
GET /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 .
.
14. 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.
17. 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
18. 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