w3c linked data platform overview

31
© 2014 IBM Corporation W3C Linked Data Platform Steve Speicher, @sspeiche [email protected] Linked Data Platform 7 October

Upload: steve-speicher

Post on 24-May-2015

291 views

Category:

Technology


1 download

DESCRIPTION

Update on W3C Linked Data Platform http://www.w3.org/TR/ldp as of 10/8/2014

TRANSCRIPT

Page 1: W3C Linked Data Platform Overview

© 2014 IBM Corporation

W3C Linked Data PlatformSteve Speicher, @[email protected]

Linked Data Platform7 October

Page 2: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

2

Agenda

Linked Data

■W3C Linked Data Platform–LDP Resource–LDP Container–LDP Paging

Status

■Related Projects

Page 3: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Linked Data – Defined by Tim Berners-Lee

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.

He concludes this with: “Simple.”

Reference: “Linked Data”, Tim Berners-Lee, 2006-07-27

Page 4: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

4 October 7, 2014

Linked Data and the Web

Linked Data is a natural extension of the web of documents:

Web of Documents Linked Data

Standard Global Identifier+Locator

Pages are identified by a URL which can also be used to locate the page

Pieces of data are identified by a URL which can also be used to locate the data

Standard Access Protocol

Pages are accessed via HTTP Data is accessed via HTTP

Standard Representation

Pages are served in a standard format: HTML

Data is served in a standard representation: RDF

Standard way of linking related items

Related pages are linked to one another using their URLs

Related pieces of data are linked to one another using their URLs

Page 5: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Not All Linked Data needs to be Linked Open Data (LOD)

★ Available on the web (whatever format) but with an open licence, to be Open Data

★★ Available as machine-readable structured data (e.g. excel instead of image scan of a table)

★★★ As (2) plus non-proprietary format (e.g. CSV instead of excel)

★★★★ All the above plus, Use open standards from W3C (RDF and SPARQL) to identify things, so that people can point at your stuff

★★★★★ All the above, plus: Link your data to other people’s data to provide context

This does NOT mean all Linked Data must be freely available.

Just like not all web pages are publicly available not all Linked Data needs to be.

Added in 2010 by Tim Berners-Lee: “in order to encourage people, especially government data owners, along the road to good linked data, I have developed this star rating system”

Page 6: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

6

Software Configuration Management

Software Configuration Management

Work-item & defect tracking (aka Change Management)

Work-item & defect tracking (aka Change Management)

Build automation & managementBuild automation & management

Test automation & managementTest automation & management

Requirements managementRequirements management

Year 2010 – IBM Rational's Breakthrough

6

Integrate with data & open protocols instead of glue code

“If the entire Web can connect like this, why wouldn't the same idea work for ALM?”

Applying Linked Data to the ALM Integration Challenge: Artifacts such as defects, change requests, and tests become resources exposed as RDF

that can be linked to each other Tools simply access the resources via HTTP following the Linked Data principles

Page 7: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

7

Challenges of using Linked Data

■ No formal definition

■ State of the art is primarily about publishing read-only data on the web, downloaded and updated as large dumps or via a SPARQL entry point

■ Tim Berners-Lee's four principles are a terrific foundation but don’t go far enough.

■ Developers are left with many unanswered questions:

– How do I create a resource?• It seems obvious that you use POST to create, but what do you POST to?

– Where can I get the list of resources that already exist?– Which vocabulary do I use?– Which media types do I use?– When resources get big, how do I split the information into pages?– How do I specify ordering?

Page 8: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

8

Agenda

■Linked Data

W3C Linked Data Platform–LDP Resource–LDP Container–LDP Paging

Status

■Related Projects

Page 9: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

9

Linked Data Platform (LDP)

“A specification for HTTP-based (RESTful) application integration patterns using read/write Linked Data.”

■A set of rules that clarify and extends Tim Berners-Lee's four basic rules focusing on the following concepts:

– LDP Resources (LDPR)– HTTP and RDF techniques to read and write linked data– Resources can be created, modified, deleted and read using standard HTTP methods

(i.e., POST, PUT/PATCH, DELETE, GET).– Cover “RDF sources” as well as “binary resources”

– LDP Containers (LDPC)– An LDPR to which you POST to create new things, GET to find existing things– Similar to what AtomPub does for XML– Available in three flavors: BasicContainer, DirectContainer, and IndirectContainer

– Paging & Ordering– A mechanism to get the content of an LDPR in chunks and specify the order in which

the content is sorted

Page 10: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Linked Data Platform Resource (LDPR)

Different types:

Some general rules:

1. LDPRs are HTTP resources that can be created, modified, deleted and read using standard HTTP methods (i.e., POST, PUT/PATCH, DELETE, GET).

2. LDPRs use RDF to define their states.

3. You can request a Turtle representation of a LDPR and possibly other reps (e.g., XML/RDF)

4. LDP clients use Optimistic Collision Detection on update (etags).

This is little more than what HTTP already defines.

Page 11: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

http://example.org

LDP Resource – GET a simple example

HTTP/1.1 200 OKETag: "_87e52ce291112"Link: <http://www.w3.org/ns/ldp#Resource>; rel="type"Allow: GET,PUT,PATCH,DELETE,OPTIONS,HEAD

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

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

<http://example.org/container1/member1> a o:Cash; dcterms:title “ACME Bank savings account”; o:value 45.00.

GET /container1/member1 HTTP/1.1Host: example.orgAccept: text/turtle

Req

uest

Res

pons

e

container1

member2

member3

member1

Page 12: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Linked Data Platform Container (LDPC)

Different types:

Some general rules:

1. LDPCs are LDPRs

2. Clients can retrieve the list of resource members of an LDPC using GET

3. New resources are created by POSTing to an LDPC

4. Any resource can be POSTed to an LDPC – not just LDPRs (i.e., LDP-NR and LDPCs)

5. After POSTing a new resource to an LDPC, the new resource will appear as a member until it is deleted.

6. Clients can retrieve information about an LDPC without retrieving a full representation of its content, including its members.

7. On deleting an LDPC the server MAY delete member resources.

Page 13: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

http://example.org

LDP BasicContainer – GET lists existing resources

Link: <http://www.w3.org/ns/ldp#BasicContainer>; rel="type", <http://www.w3.org/ns/ldp#Resource>; rel="type"Removed most HTTP headers to save some space

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

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.

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

<http://example.org/container1>

  a ldp:BasicContainer;

  dcterms:title "A very simple container";

  ldp:contains

<http://example.org/container1/member1>,

<http://example.org/container1/member2>,

<http://example.org/container1/member3>.

GET /container1 HTTP/1.1Host: example.orgAccept: text/turtle

Req

uest

Res

pons

e

container1

member1

member2

member3

Page 14: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP BasicContainer – POST creates a new resource

HTTP/1.1 201 CREATED

Content-Location: http://example.org/container1/member4

POST /container1 HTTP/1.1Host: example.orgContent-type: text/turtleContent-length: 324

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

<> a o:Stock; dcterms:title “ACME Co.”; o:value 100.00.

Req

uest

Res

pons

e

http://example.org

container1

member1

member2

member3

+member4

Page 15: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP BasicContainer – GET returns updated list

Removed HTTP headers to save some space

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

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.

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

<http://example.org/container1>

  a ldp:BasicContainer;

  dcterms:title "A very simple container";

  ldp:contains

<http://example.org/container1/member1>,

<http://example.org/container1/member2>,

<http://example.org/container1/member3>,

<http://example.org/container1/member4>.

GET /container1 HTTP/1.1Host: example.orgAccept: text/turtle

Req

uest

Res

pons

e

http://example.org

container1

member1

member2

member3

member4

Page 16: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Net worth example

Disclaimer: picture only in UML, does not follow UML constraints

Page 17: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP DirectContainer – Slightly more complex example

<http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>. 

• Members are associated with a resource other than the container

• Membership predicate is domain specific

• Relationship can take two different forms:

• <membershipResource> <ldp:hasMemberRelation> <member>

• <member> <ldp:isMemberOfRelation> <membershipResource>

<http://example.org/netWorth/nw1/assetContainer> a ldp:DirectContainer; dcterms:title "The assets of JohnZSmith"; ldp:membershipResource <http://example.org/netWorth/nw1>; ldp:hasMemberRelation o:asset.

Page 18: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP DirectContainer (continue)

<http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>,  o:liability <http://example.org/netWorth/nw1/liabilityContainer/l1>.

• Several containers can be defined around the same resource (e.g., assets, liabilities)

<http://example.org/netWorth/nw1/assetContainer> a ldp:DirectContainer; dcterms:title "The assets of JohnZSmith"; ldp:membershipResource <http://example.org/netWorth/nw1>; ldp:hasMemberRelation o:asset.

<http://example.org/netWorth/nw1/liabilityContainer> a ldp:DirectContainer; dcterms:title "The liabilities of JohnZSmith"; ldp:membershipResource <http://example.org/netWorth/nw1>; ldp:hasMemberRelation o:liability.

Page 19: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP IndirectContainer – More complex example

<http://example.org/netWorth/nw1> a o:NetWorth; o:advisor <advisorContainer/bob#me>, <advisorContainer/marsha#me>.

• Supports listing non-information resource as members

<http://example.org/advisors/> a ldp:IndirectContainer; dcterms:title "The asset advisors of JohnZSmith"; ldp:membershipResource <http://example.org/netWorth/nw1>; ldp:hasMemberRelation o:advisor; ldp:insertedContentRelation foaf:primaryTopic; ldp:contains <advisorContainer/bob>, <advisorContainer/marsha>.

<http://example.org/advisorContainer/bob> foaf:primaryTopic <#me>.

<#me> a foaf:Person; foaf:name "Bob Marlow".

Page 20: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Non-RDF Sources a.k.a “Binary Resources”

HTTP/1.1 201 CREATED

Content-Location: http://example.org/attachments/myimage

Link: <http://example.org/mycontainer/myimage-info>; rel=describedby

POST /attachments/ HTTP/1.1Host: example.orgContent-type: image/pngContent-length: 1048Slug: myimage

[binary content not displayed]

Req

uest

Res

pons

e

Created by POSTing to a Container

As a result the server may create two resources:– An LDP Non-RDF Source that is added as a member– An LDP RDF Source that describes the LDP-NR

http://example.org

attachments

member1

member2

member3

+myimage

+myimage-info

Page 21: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Paging

HTTP/1.1 303 See Other

Location: <http://example.org/customer-relations?page1>

GET /customer-relations HTTP/1.1Host: example.orgAccept: text/turtlePrefer: return=representation; max-triple-count="500"R

eque

stR

espo

nse

Client can request to only be sent a certain amount of data (# of triples, records, or kbytes)

As a result the server may redirect to a first page

Page 22: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Paging – Getting the first page

HTTP/1.1 200 OKRemoved some HTTP headers to save some space

Link: <http://www.w3.org/ns/ldp#Resource>; rel="type", <http://www.w3.org/ns/ldp#Page>; rel="type"Link: <http://example.org/customer-relations?p=2>; rel='next'Link: <http://example.org/customer-relations>; rel='canonical'; etag="customer-relations-v1”

Removed other prefix declarations

<> a o:CustomerRelations; dcterms:title "The customer information for Example Co."; o:client <#JohnZSmith>, <#BettyASmith>, <#JoanRSmith>.

<#JohnZSmith> a foaf:Person; o:status o:ActiveCustomer;

GET /customer-relations?page1 HTTP/1.1Host: example.orgAccept: text/turtlePrefer: return=representation; max-triple-count="500"R

eque

stR

espo

nse

Link Headers indicate: this is a page and provides link to the next page

Page 23: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Paging – Detecting changes

HTTP/1.1 200 OKRemoved some HTTP headers to save some space

Link: <http://www.w3.org/ns/ldp#Resource>; rel="type", <http://www.w3.org/ns/ldp#Page>; rel="type"Link: <http://example.org/customer-relations?p=2>; rel='next'Link: <http://example.org/customer-relations>; rel='canonical'; etag="customer-relations-v1”

Removed other prefix declarations

<> a o:CustomerRelations; dcterms:title "The customer information for Example Co."; o:client <#JohnZSmith>, <#BettyASmith>, <#JoanRSmith>.

<#JohnZSmith> a foaf:Person; o:status o:ActiveCustomer;

GET /customer-relations?page1 HTTP/1.1Host: example.orgAccept: text/turtlePrefer: return=representation; max-triple-count="500"R

eque

st

Link Header provides link to the resource being paged with etag to detect changes

Res

pons

e

Page 24: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Paging – Optimizing workflow with HTTP 2NN

HTTP/1.1 2NN Contents of RelatedRemoved some HTTP headers to save some space

Location: <http://example.org/customer-relations?page1>Link: <http://www.w3.org/ns/ldp#Resource>; rel="type", <http://www.w3.org/ns/ldp#Page>; rel="type"Link: <http://example.org/customer-relations?p=2>; rel='next'Link: <http://example.org/customer-relations>; rel='canonical'; etag="customer-relations-v1”

Removed other prefix declarations

<> a o:CustomerRelations; dcterms:title "The customer information for Example Co."; o:client <#JohnZSmith>, <#BettyASmith>, <#JoanRSmith>.

<#JohnZSmith> a foaf:Person;

GET /customer-relations HTTP/1.1Host: example.orgAccept: text/turtlePrefer: return=representation; max-triple-count="500"Prefer: contents-of-related

Req

uest

When client supports 2NN, server can directly send first page back

Res

pons

e

Page 25: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Paging – Ordering of LDP Containers

Removed some HTTP headers to save some space

Link: ... <http://www.w3.org/ns/ldp#Page>; rel="type"Link: <http://example.org/netWorth/nw1/assetContainer/sortedSequence/>; rel='http://www.w3.org/ns/ldp#pageSequence’

Removed other prefix declarations

<> a ldp:DirectContainer; ldp:membershipResource <http://example.org/netWorth/nw1>; ldp:hasMemberRelation o:asset; ldp:insertedContentRelation ldp:MemberSubject; ldp:contains <a1>, <a2>, <a3>.

<http://example.org/netWorth/nw1> a o:NetWorth; o:asset <a1>, <a3>, <a2>.

<a1> a o:Stock; o:marketValue 100.00 .

@base <http://example.org/netWorth/nw1/assetContainer/sortedSequence/> .<> ldp:pageSortCriteria ( <#Sort-o.marketValue-Ascending> ).

<#Sort-o.marketValue-Ascending> a ldp:pageSortCriterion; ldp:pageSortOrder ldp:Ascending; ldp:pageSortPredicate o:marketValue.

Order used for paging is specified via a resource providing a list of sort criteria

Res

pons

e

Page 26: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

26

Agenda

■Linked Data

W3C Linked Data Platform–LDP Resource–LDP Container–LDP Paging

Status

■Related Projects

Page 27: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

27

Status

Published Candidate Recommendation of LDP on 19 June 2014– Proposed Recommendation expected by the end of September– Test suite available for implementers

About to publish Second Last Call of LDP Paging– Provide for negotiation client-server– Provide for more certainty– Review period to end around the end of September 2014

Updated Use Cases & Requirements WG Note on 13 March 2014

Published Primer WG Note on 26 June 2014

About to publish Best Practices & Guidelines WG Note

About to publish Access Control Use cases & requirements WG Note

About to publish First Public Working Draft of LD PATCH! Seeking feedback on direction!

Page 28: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Looking Forward

Several necessary and desirable features are not in scope for LDP 1.0:

■Security – Authentication, Access control– WG is chartered to identify requirements and use cases– Several technologies can already be used: OAuth, WebId, etc.

Validation/Constraints– RDFS and OWL are for inference not validation– There is currently no standard technology to perform validation

• RDF Data Shapes Working Group has launched!

Deployment challenges– URL changes– Server cloning– Cross-server query

LDP.Next Wish List: https://www.w3.org/2012/ldp/wiki/LDPNext

Page 29: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

29

Agenda

■Linked Data

■W3C Linked Data Platform–LDP Resource–LDP Container–LDP Paging

■Status

Related Projects

Page 30: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

LDP Implementations

SDK and supporting tools to help the community to adopt OSLC specifications and build compliant tools

Implementation of LDP that can be extended and deployed easily by organizations who want to publish data or build custom applications

Marmotta

For a more complete list see: http://www.w3.org/wiki/LDP_Implementations

Several implementations are already available:

Page 31: W3C Linked Data Platform Overview

© 2014 IBM Corporation

Linked Data Platform

Automation

Monitoring

Community driven and governed 400+ registered community members Workgroup members from 34+ organizations

Wide range of interests, expertise, & participation Open specifications for numerous disciplines Defined by scenarios – solution oriented Implementations from IBM, BPs, and Others

Based on Linked Data

Open Services for Lifecycle CollaborationLifecycle integration inspired by the web

Inspired by the web

ProvenFree to use and share

OpenChanging the industry

Innovative

Open Services for Lifecycle Collaboration (OSLC)Working to improve the way software lifecycle tools share data

open-services.net

For more info see: http://open-services.net