SlideShare a Scribd company logo
1 of 40
Download to read offline
Leveraging W3C Linked Data Platform for
Loosely Coupled Application Integrations
JavaOne 2013 Session CON2492
Steve Speicher
Linked Lifecycle Data and OSLC
Chief Architect
IBM Rational
@sspeiche
sspeiche@gmail.com

© 2013 IBM Corporation
Agenda
Uses and
Background
What is it

Linked Data
Standardization
Open
Source

© 2013 IBM Corporation
Software Development Tools : Year 2000 - point products
Software
Configuration
Management

Test automation
& management

Build automation &
management

Work-item & defect
tracking

Requirements
management

User complaints
–Need tools to work better
–Need tools to work together

© 2013 IBM Corporation
Year 2005 – ALM V1
Software
Configuration
Management

Test automation
& management

Build automation
& management

Work-item & defect
tracking

Requirements
management

ALM Solution

• Developer complaints
– Clumsy integrations
– Want best-of-breed choice

• Management complaints
– Need governance, metrics,
reports, …

• Mixed Tool Environments
– Open-source offerings with DIY
integration
– 3rd party ALM suites

© 2013 IBM Corporation
Year 2010 – Linked Data and OSLC – A major breakthrough
Software
Configuration
Management

Build automation
& management

Requirements
management

Test automation
& management
Work-item & defect
tracking

Learned to integrate with open protocols instead of glue

@ http://open-services.net
© 2013 IBM Corporation
Cloud Application Management pain points
Managing the lifecycle of cloud applications is complex:

- Different tools to manage the cloud applications at the different lifecycle stages
(i.e. development, governance, instantiation, defect tracking, etc.)
- Different APIs provided by these tools
- Different overlapping resource models
- …
Simplify the way cloud applications are managed:
- development of cloud application templates
- governance of templates
- publishing templates to cloud managers
- instantiation of templates
- management of created instances
© 2013 IBM Corporation
Healthcare – Adverse Event Reporting Landscape

Regulatory
Agency

Local
Office Systems

Drug
Producer

For each of these 3, need:
• Custom protocol
• Custom format
• Custom schema
• Custom security

© 2013 IBM Corporation
Agenda
Uses and
Background
What is it

Linked Data
Standardization
Open
Source

© 2013 IBM Corporation
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)
Got links?

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

© 2013 IBM Corporation
Linked Data – What is it?

TestCase 14 is blocked by Issue 973
http://srv/qm/tc/14

qm:blockedBy

http://apache.org/jira/HTTPCLIENT-973

Joe is a committer for Apache
http://joecoder.me

doap:committer

http://apache.org

Issue 973 depends on Bug 318
http://apache.org/jira/HTTPCLIENT-973

cm:dependsOn

http://bugs.sun.com/? id=7172318

Issue 973 is owned by Joe
http://apache.org/jira/HTTPCLIENT-973

dc:contributor

http://joecoder.me

© 2013 IBM Corporation
Linked Data – What is it? Show me a picture

TestCase
14
Joe
Issue
973
Apache
Bug
318

© 2013 IBM Corporation
Linked Data – Bridging separate data sources (but with meaning)

Source: http://lod-cloud.net Sept 2011

© 2013 IBM Corporation
OSLC – Based on Linked Data
Lifecycle Tool
<http://cm/bugs/2314>
Common Resource Definitions
a oslc_cm:ChangeRequest ;
Change
dcterms:relation <http://cm/bugs/1235>;
Management
oslc_cm:implementsRequirement <http://rm/req/56> .

Service Management
Help Desk

<http://rm/req/56>
a oslc_rm:Requirement ;
Lifecycle Tool
dcterms:title “Online shopping cart”;
Requirements
oslc_rm:validatedBy <http://qm/tc/17> .
Management

Lifecycle Tool
Quality Management

Delegated Dialogs
Service Management
Deployment

Link Preview

http://open-services.net

© 2013 IBM Corporation
Agenda
Uses and
Background

What is it

Linked Data
Standardization
Open
Source

© 2013 IBM Corporation
Linked Data – state of the art
Has some limitations:
– Focused on exposing data with relationships
– No support for update and creation of granular data
– Data updates achieved by receiving new dataset dumps
– Often an export transformation and dump of data
– Based on best practices -- don’t all align and based on specialized usage
Provides great value for many cases
Limited interoperability:
– Interoperable solutions are limited due to no agreement on best practices
– Applications support least common denominator or hacks

© 2013 IBM Corporation
Evolution of W3C Linked Data
 W3C Linked Data
 Four design principles proposed by Tim Berners-Lee in a 2006 article
 Standardization will accelerate industry adoption and enhance interop
 IBM Sponsored W3C Workshop on Linked Enterprise Data Patterns (Dec 2011)
– Participating organizations included EMC, Elsevier, IBM, Nokia, Oracle
– Workshop recommended W3C produce a standard “which defines a Linked Data
Platform”, leveraging RDF
 IBM Submitted Linked Data Basic Profile 1.0 proposal to W3C (March 2012)
– Base the Linked Data Platform foundation on OSLC Core technology and experience
– Co-submitters:
– Supporters:
© 2013 IBM Corporation
W3C Linked Data Platform (LDP) Working Group
 Workgroup membership spans 49 participants from 30 organizations
 Participants: IBM, Oracle, Fujitsu, EMC, BBC, DERI, Cambridge Semantics, …
 Define a W3C Standard of “Linked Data”
– Based on Tim Berners-Lee four principles of Linked Data
– HTTP-based (RESTful) application integration patterns using read/write Linked
Data
– Will complement SPARQL and will be compatible with standards for publishing
Linked Data, bringing the data integration features of RDF to RESTful, dataoriented software development.
 On target to deliver a W3C Candidate Recommendation by early 2014

Details @ http://www.w3.org/2012/ldp
© 2013 IBM Corporation
W3C Linked Data Platform (LDP)

CAUTION: Specification is still under construction.

© 2013 IBM Corporation
Linked Data Platform - Resource
 What resource formats should be used?
 What literal value types should be used?
 Are there some typical vocabularies that should be reused?

 How is optimistic collision detection handled for updates?
 What should client expectations be for changes to linked-to
resources, such as type changes?
 What can servers do to ease the burden of constraints for resource
creation?
© 2013 IBM Corporation
Request

LDP Resource – GET a simple example
GET /container1/member1 HTTP/1.1
Host: example.org
Accept: text/turtle

Response

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://w3.org/ns/ldp#>.

container1

member
1
member2
member3
http://example.org

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

© 2013 IBM Corporation
Linked Data Platform - Container
 To which URLs can I POST to create new resources?
 Where can I GET a list of existing resources?
 How is the order of the container entries expressed?

 How do I get information about the members along with the
container?
 How do I GET the entries of a large container broken up into pages?
 How can I ensure the resource data is easy to query?

© 2013 IBM Corporation
Request

ldp:Container – GET a simple example
GET /container1/ HTTP/1.1
Host: example.org
Accept: text/turtle

container1
member1

Removed HTTP headers to save some space

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

member2
member3

Response

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

http://example.org

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

a ldp:Container;
dcterms:title "A very simple container";
rdfs:member <member1>, <member2>, <member3>.

© 2013 IBM Corporation
Request

ldp:Container – create resource and add
POST /container1/ HTTP/1.1
Host: example.org
Content-type: text/turtle
Content-length: 324
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix o: <http://example.org/ontology/>.
<>

Response

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

container1
member1
member2
member3
+member4
http://example.org

HTTP/1.1 201 CREATED
Location: http://example.org/container1/member4

© 2013 IBM Corporation
Request

ldp:Container – get updated
GET /container1/ HTTP/1.1
Host: example.org
Accept: text/turtle

container1
member1

Removed HTTP headers to save some space

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

Response

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

member2
member3
member4
http://example.org

<http://example.org/container1/>
a ldp:Container;
dcterms:title "A very simple container";
rdfs:member <member1>, <member2>, <member3>, <member4>.

© 2013 IBM Corporation
ldp:Container – Net worth example

Disclaimer: picture only in UML, does not follow UML constraints
© 2013 IBM Corporation
ldp:Container – slightly more complex example
# The following is the representation of
#
http://example.org/netWorth/nw1
@prefix o: <http://example.org/ontology/>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ldp: <http://w3c.org/ns/ldp#>.
<http://example.org/netWorth/nw1>
a o:NetWorth;
o:asset
<http://example.org/netWorth/nw1/assetContainer/a1>,
<http://example.org/netWorth/nw1/assetContainer/a2>.
<http://example.org/netWorth/nw1/assetContainer/>
a ldp:Container;
dcterms:title "The assets of JohnZSmith";
ldp:membershipSubject <http://example.org/netWorth/nw1>;
ldp:membershipPredicate o:asset.

•

Membership predicate is something other than rdfs:member (o:asset)

•

Subject for members is something other than the container
© 2013 IBM Corporation
ldp:Container – Member Information
# chopped @prefix
<http://example.org/netWorth/nw1>
a o:NetWorth;
o:asset
<http://example.org/netWorth/nw1/assetContainer/a1>,
<http://example.org/netWorth/nw1/assetContainer/a2>.
<http://example.org/netWorth/nw1/assetContainer/>
a ldp:Container;
dcterms:title "The assets of JohnZSmith";
ldp:membershipSubject <http://example.org/netWorth/nw1>;
ldp:membershipPredicate o:asset.
<http://example.org/netWorth/nw1/assetContainer/a1>
a o:Stock;
o:value 10000.
<http://example.org/netWorth/nw1/assetContainer/a2>
a o:Bond;
o:value 20000.

•

Statements about the member resources included with container representation response
© 2013 IBM Corporation
Request

ldp:Container – Only data about it, no members
GET /netWorth/nw1?non-member-properties HTTP/1.1
Host: example.org
Accept: text/turtle; charset=utf-8

Removed HTTP headers to save some space

Response

@prefix o: <http://example.org/ontology/>.
@prefix dcterms: <http://purl.org/dc/terms/>.
@prefix ldp: <http://w3c.org/ns/ldp#>.
<http://example.org/netWorth/nw1>
a o:NetWorth.
# Members omitted
<http://example.org/netWorth/nw1/assetContainer/>
a ldp:Container;
dcterms:title "The assets of JohnZSmith";
ldp:membershipSubject <http://example.org/netWorth/nw1>;
ldp:membershipPredicate o:asset.

© 2013 IBM Corporation
ldp:Container – Paging (first page)
# Request-URI: http://example.org/netWorth/nw1?firstPage
<http://example.org/netWorth/nw1>
a o:NetWorth;
o:asset
<http://example.org/netWorth/nw1/assetContainer/a1>,
<http://example.org/netWorth/nw1/assetContainer/a2>.
<http://example.org/netWorth/nw1/assetContainer/>
a ldp:Container;
dcterms:title "The assets of JohnZSmith";
bp:membershipSubject <http://example.org/netWorth/nw1>;
bp:membershipPredicate o:asset.

<http://example.org/netWorth/nw1/assetContainer/?firstPage>

a ldp:Page;
ldp:pageOf
<http://example.org/netWorth/nw1/assetContainer/>;
ldp:nextPage <http://example.org/netWorth/nw1/assetContainer/?p=2>.
<http://example.org/netWorth/nw1/assetContainer/a1>
a o:Stock;
o:value 100.00.
<http://example.org/netWorth/nw1/assetContainer/a2>
a o:Cash;
o:value 50.00.

•

New ldp:Page resource

•

Members of containers are paged

© 2013 IBM Corporation
ldpContainer – Paging (last page)
# Request-URI: http://example.org/netWorth/nw1/assetContainer/?p=2
# omitted @prefix
<http://example.org/netWorth/nw1>
a o:NetWorth;
o:asset
<http://example.org/netWorth/nw1/assetContainer/a3>.
<http://example.org/netWorth/nw1/assetContainer/>
a bp:Container;
dcterms:title "The assets of JohnZSmith";
bp:membershipSubject <http://example.org/netWorth/nw1>;
bp:membershipPredicate o:asset.

<http://example.org/netWorth/nw1/assetContainer/?p=2>

a ldp:Page;
ldp:pageOf <http://example.org/netWorth/nw1/assetContainer/>;

ldp:nextPage rdf:nil.
<http://example.org/netWorth/nw1/assetContainer/a5>
a o:Stock;
dcterms:title "Big Co.";
o:value 200.02.

•

Last page indicated by ldp:nextPage set to rdf:nil
© 2013 IBM Corporation
ldp:Container – Paging (ordering)
# Request-URI: http://example.org/netWorth/nw1/assetContainer/?firstPage
# omitted @prefix
<http://example.org/netWorth/nw1>
a o:NetWorth;
o:asset
<http://example.org/netWorth/nw1/assetContainer/a1>,
<http://example.org/netWorth/nw1/assetContainer/a2>.
<http://example.org/netWorth/nw1/assetContainer/>
a ldp:Container;
dcterms:title "The assets of JohnZSmith";
ldp:membershipSubject <http://example.org/netWorth/nw1>;
ldp:membershipPredicate o:asset.

<http://example.org/netWorth/nw1/assetContainer/?firstPage>
a ldp:Page;
ldp:pageOf <http://example.org/netWorth/nw1/assetContainer/>;
ldp:containerSortPredicates (o:value).
<http://example.org/netWorth/nw1/assetContainer/a1>
a o:Stock;
o:value 100.00.
<http://example.org/netWorth/nw1/assetContainer/a2>
a o:Cash;
o:value 50.00.

•

Order indicated by ldp:containerSortPredicate

•

No ordinal predicate introduced, leverage domain model

© 2013 IBM Corporation
Agenda
Uses and
Background
What is it

Linked Data
Standardization
Open
Source

© 2013 IBM Corporation
Open Source Linked Data projects
Simple yet solid framework for building RESTful Web
services based on JAX-RS
RDF Java API and Fuseki provides REST-style
SPARQL HTTP interface
Easily develop semantic web apps by providing tools to
manipulate RDF data, create RESTful Web Services
Extend traditional content management systems with
semantic services
SDK and supporting tools to help the community to
adopt OSLC specifications and build compliant tools

© 2013 IBM Corporation
Handling Linked Data requests - GET
@GET
@Path("{crId}")
@Produces({“application/rdf+xml”, “application/xml”, “application/json”})
public ChangeRequest getChangeRequest(@Context final HttpServletResponse httpServletResponse,
@PathParam(”crId") final String crId)

{ final ChangeRequest cr = Persistence.getChangeRequest(crId);
if (cr != null) {
cr.setServiceProvider(ServiceProviderSingleton.getServiceProviderURI());
setETagHeader(getETagFromChangeRequest(cr), httpServletResponse);

return cr; }

throw new WebApplicationException(Status.NOT_FOUND);
}
© 2013 IBM Corporation
Handling Linked Data requests – HTTP POST
@OslcCreationFactory ( resourceTypes = {“http://open-services.net/ns/cm#ChangeRequest”} )
@POST
@Consumes({“application/rdf+xml”, “application/xml”, “application/json”})
@Produces({“application/rdf+xml”, “application/xml”, “application/json”})
public Response addChangeRequest(@Context final HttpServletRequest httpServletRequest,
@Context final HttpServletResponse httpServletResponse,
final ChangeRequest
changeRequest)
throws URISyntaxException

{
// ... create magic happens here ...

return Response.created(about).entity(changeRequest).build();
}

© 2013 IBM Corporation
Annotating Classes for RDF
@OslcNamespace(“http://open-services.net/ns/cm#”)
@OslcResourceShape(describes = “http://open-services.net/ns/cm#ChangeRequest”)
public final class ChangeRequest extends AbstractResource
{ private String status;
private String title;
@OslcPropertyDefinition("http://open-services.net/ns/cm#status")
public String getStatus() { return status; }

@OslcPropertyDefinition("http://purl.org/dc/terms/#title")
public String getTitle() { return title; }
}

© 2013 IBM Corporation
Wrapping up
 Linked Data space is actively evolving and maturing

 Loosely-coupled application integrations have benefited
 Good alignment with REST applications
 Further standardization will help the cause
 Stay tuned for W3C Linked Data Platform

© 2013 IBM Corporation
Questions?

© 2013 IBM Corporation
BACKUP

© 2012 IBM Corporation
Open Services for Lifecycle Collaboration (OSLC)
Working to improve the way software lifecycle tools share data
Open Services for Lifecycle Collaboration
Lifecycle integration inspired by the web


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

Inspired by the web

Proven

Automation

Monitoring

Linked Data

Free to use and share Changing the industry

Open

Innovative

@ http://open-services.net

© 2013 IBM Corporation

More Related Content

What's hot

Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Edward Burns
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Edward Burns
 
When dispatcher caching is not enough by Jakub Wądołowski
When dispatcher caching is not enough by Jakub WądołowskiWhen dispatcher caching is not enough by Jakub Wądołowski
When dispatcher caching is not enough by Jakub WądołowskiAEM HUB
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiBob Paulin
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceTim Ellison
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesChris Muir
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesChris Muir
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015Edward Burns
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015Edward Burns
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesChristopher Jones
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityChris Muir
 
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationChris Muir
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 
Inspirage Webinar on Epm integration agent
Inspirage Webinar on Epm integration agentInspirage Webinar on Epm integration agent
Inspirage Webinar on Epm integration agentDayalan Punniyamoorthy
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningChris Muir
 
Collaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan PunniyamoorthyCollaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan PunniyamoorthyDayalan Punniyamoorthy
 
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsOracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsChris Muir
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 

What's hot (20)

Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
 
Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015Java EE 7 from an HTML5 Perspective, JavaLand 2015
Java EE 7 from an HTML5 Perspective, JavaLand 2015
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
 
When dispatcher caching is not enough by Jakub Wądołowski
When dispatcher caching is not enough by Jakub WądołowskiWhen dispatcher caching is not enough by Jakub Wądołowski
When dispatcher caching is not enough by Jakub Wądołowski
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
 
A Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark PerformanceA Java Implementer's Guide to Better Apache Spark Performance
A Java Implementer's Guide to Better Apache Spark Performance
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service Architectures
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best Practices
 
JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015JSF 2.2 Input Output JavaLand 2015
JSF 2.2 Input Output JavaLand 2015
 
Burns jsf-confess-2015
Burns jsf-confess-2015Burns jsf-confess-2015
Burns jsf-confess-2015
 
Node.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development TechniquesNode.js and Oracle Database: New Development Techniques
Node.js and Oracle Database: New Development Techniques
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for Security
 
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 
Inspirage Webinar on Epm integration agent
Inspirage Webinar on Epm integration agentInspirage Webinar on Epm integration agent
Inspirage Webinar on Epm integration agent
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & Tuning
 
Collaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan PunniyamoorthyCollaborate 18 presentation by Dayalan Punniyamoorthy
Collaborate 18 presentation by Dayalan Punniyamoorthy
 
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsOracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 

Viewers also liked

OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...olberger
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesSteve Speicher
 
REST meets Semantic Web
REST meets Semantic WebREST meets Semantic Web
REST meets Semantic WebSteve Speicher
 
Innovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcInnovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcSteve Speicher
 
Better integrations through open interfaces
Better integrations through open interfacesBetter integrations through open interfaces
Better integrations through open interfacesSteve Speicher
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCInnovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCSteve Speicher
 
W3C Linked Data Platform Overview
W3C Linked Data Platform OverviewW3C Linked Data Platform Overview
W3C Linked Data Platform OverviewSteve Speicher
 
Oslc for owf think tank on open forges
Oslc for owf think tank on open forgesOslc for owf think tank on open forges
Oslc for owf think tank on open forgesSteve Speicher
 
Innovate2014 Panel - Best Practices on Implementing Integrations
Innovate2014 Panel - Best Practices on Implementing IntegrationsInnovate2014 Panel - Best Practices on Implementing Integrations
Innovate2014 Panel - Best Practices on Implementing IntegrationsSteve Speicher
 
DevOps in Cloud OSLC Integration
DevOps in Cloud OSLC IntegrationDevOps in Cloud OSLC Integration
DevOps in Cloud OSLC IntegrationSteve Speicher
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 

Viewers also liked (12)

OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
OSLC (Open Services for Lifecycle Collaboration): open standard for interoper...
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
 
REST meets Semantic Web
REST meets Semantic WebREST meets Semantic Web
REST meets Semantic Web
 
Innovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcInnovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslc
 
Better integrations through open interfaces
Better integrations through open interfacesBetter integrations through open interfaces
Better integrations through open interfaces
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
Innovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTCInnovate2011 DevOps TSRM RTC
Innovate2011 DevOps TSRM RTC
 
W3C Linked Data Platform Overview
W3C Linked Data Platform OverviewW3C Linked Data Platform Overview
W3C Linked Data Platform Overview
 
Oslc for owf think tank on open forges
Oslc for owf think tank on open forgesOslc for owf think tank on open forges
Oslc for owf think tank on open forges
 
Innovate2014 Panel - Best Practices on Implementing Integrations
Innovate2014 Panel - Best Practices on Implementing IntegrationsInnovate2014 Panel - Best Practices on Implementing Integrations
Innovate2014 Panel - Best Practices on Implementing Integrations
 
DevOps in Cloud OSLC Integration
DevOps in Cloud OSLC IntegrationDevOps in Cloud OSLC Integration
DevOps in Cloud OSLC Integration
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
 

Similar to Here are a few key points about the LDP Container resource:- Containers can have membership predicates other than rdfs:member to define the relationship between the container and its members. In this example it is o:asset.- The subject of the membership for a container's members can be something other than the container itself. Here it is the overall NetWorth resource. - Additional information about container members, like their types, can be provided inline rather than requiring separate requests. This gives clients a complete representation of the container and its members.- Large containers can be paginated to allow clients to retrieve subsets of the overall membership. Cursors or other paging controls would need to be supported

WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410Arnaud Le Hors
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Codemotion
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymerwolf4ood
 
DataCite How To: Use the MDS
DataCite How To: Use the MDSDataCite How To: Use the MDS
DataCite How To: Use the MDSFrauke Ziedorn
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsmichaelaaron25322
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Bhupesh Bansal
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop User Group
 
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...Steve Speicher
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasureMark Myers
 
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Data
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes DataSHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Data
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Datapanagenda
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Application integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsApplication integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsNandana Mihindukulasooriya
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patternsKyle Brown
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET Journal
 
Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Kyle Brown
 
Creating a RESTful api without losing too much sleep
Creating a RESTful api without losing too much sleepCreating a RESTful api without losing too much sleep
Creating a RESTful api without losing too much sleepMike Anderson
 
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014Robert Meusel
 
REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulnessDavid Waite
 
PowerPoint
PowerPointPowerPoint
PowerPointVideoguy
 

Similar to Here are a few key points about the LDP Container resource:- Containers can have membership predicates other than rdfs:member to define the relationship between the container and its members. In this example it is o:asset.- The subject of the membership for a container's members can be something other than the container itself. Here it is the overall NetWorth resource. - Additional information about container members, like their types, can be provided inline rather than requiring separate requests. This gives clients a complete representation of the container and its members.- Large containers can be paginated to allow clients to retrieve subsets of the overall membership. Cursors or other paging controls would need to be supported (20)

WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410WWW2014 Overview of W3C Linked Data Platform 20140410
WWW2014 Overview of W3C Linked Data Platform 20140410
 
Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015Meteor - Codemotion Rome 2015
Meteor - Codemotion Rome 2015
 
Meteor + Polymer
Meteor + PolymerMeteor + Polymer
Meteor + Polymer
 
contentDM
contentDMcontentDM
contentDM
 
DataCite How To: Use the MDS
DataCite How To: Use the MDSDataCite How To: Use the MDS
DataCite How To: Use the MDS
 
Spring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applicationsSpring data jpa are used to develop spring applications
Spring data jpa are used to develop spring applications
 
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
Voldemort & Hadoop @ Linkedin, Hadoop User Group Jan 2010
 
Hadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedInHadoop and Voldemort @ LinkedIn
Hadoop and Voldemort @ LinkedIn
 
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...
EclipseCon 2013 Learn and share about integrations using Eclipse Lyo, OSLC an...
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasure
 
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Data
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes DataSHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Data
SHOW104 - Buried treasure: Finding the Hidden Gold in Lotus Notes Data
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Application integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standardsApplication integration with the W3C Linked Data standards
Application integration with the W3C Linked Data standards
 
Cloud adoption patterns
Cloud adoption patternsCloud adoption patterns
Cloud adoption patterns
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHP
 
Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016Cloud adoption patterns April 11 2016
Cloud adoption patterns April 11 2016
 
Creating a RESTful api without losing too much sleep
Creating a RESTful api without losing too much sleepCreating a RESTful api without losing too much sleep
Creating a RESTful api without losing too much sleep
 
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014
Linked Data for Information Extraction Challenge - Tasks and Results @ ISWC 2014
 
REST and REST-fulness
REST and REST-fulnessREST and REST-fulness
REST and REST-fulness
 
PowerPoint
PowerPointPowerPoint
PowerPoint
 

Recently uploaded

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 

Recently uploaded (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 

Here are a few key points about the LDP Container resource:- Containers can have membership predicates other than rdfs:member to define the relationship between the container and its members. In this example it is o:asset.- The subject of the membership for a container's members can be something other than the container itself. Here it is the overall NetWorth resource. - Additional information about container members, like their types, can be provided inline rather than requiring separate requests. This gives clients a complete representation of the container and its members.- Large containers can be paginated to allow clients to retrieve subsets of the overall membership. Cursors or other paging controls would need to be supported

  • 1. Leveraging W3C Linked Data Platform for Loosely Coupled Application Integrations JavaOne 2013 Session CON2492 Steve Speicher Linked Lifecycle Data and OSLC Chief Architect IBM Rational @sspeiche sspeiche@gmail.com © 2013 IBM Corporation
  • 2. Agenda Uses and Background What is it Linked Data Standardization Open Source © 2013 IBM Corporation
  • 3. Software Development Tools : Year 2000 - point products Software Configuration Management Test automation & management Build automation & management Work-item & defect tracking Requirements management User complaints –Need tools to work better –Need tools to work together © 2013 IBM Corporation
  • 4. Year 2005 – ALM V1 Software Configuration Management Test automation & management Build automation & management Work-item & defect tracking Requirements management ALM Solution • Developer complaints – Clumsy integrations – Want best-of-breed choice • Management complaints – Need governance, metrics, reports, … • Mixed Tool Environments – Open-source offerings with DIY integration – 3rd party ALM suites © 2013 IBM Corporation
  • 5. Year 2010 – Linked Data and OSLC – A major breakthrough Software Configuration Management Build automation & management Requirements management Test automation & management Work-item & defect tracking Learned to integrate with open protocols instead of glue @ http://open-services.net © 2013 IBM Corporation
  • 6. Cloud Application Management pain points Managing the lifecycle of cloud applications is complex: - Different tools to manage the cloud applications at the different lifecycle stages (i.e. development, governance, instantiation, defect tracking, etc.) - Different APIs provided by these tools - Different overlapping resource models - … Simplify the way cloud applications are managed: - development of cloud application templates - governance of templates - publishing templates to cloud managers - instantiation of templates - management of created instances © 2013 IBM Corporation
  • 7. Healthcare – Adverse Event Reporting Landscape Regulatory Agency Local Office Systems Drug Producer For each of these 3, need: • Custom protocol • Custom format • Custom schema • Custom security © 2013 IBM Corporation
  • 8. Agenda Uses and Background What is it Linked Data Standardization Open Source © 2013 IBM Corporation
  • 9. 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) Got links? 4. Include links to other URIs. so that they can discover more things. Simple. © 2013 IBM Corporation
  • 10. Linked Data – What is it? TestCase 14 is blocked by Issue 973 http://srv/qm/tc/14 qm:blockedBy http://apache.org/jira/HTTPCLIENT-973 Joe is a committer for Apache http://joecoder.me doap:committer http://apache.org Issue 973 depends on Bug 318 http://apache.org/jira/HTTPCLIENT-973 cm:dependsOn http://bugs.sun.com/? id=7172318 Issue 973 is owned by Joe http://apache.org/jira/HTTPCLIENT-973 dc:contributor http://joecoder.me © 2013 IBM Corporation
  • 11. Linked Data – What is it? Show me a picture TestCase 14 Joe Issue 973 Apache Bug 318 © 2013 IBM Corporation
  • 12. Linked Data – Bridging separate data sources (but with meaning) Source: http://lod-cloud.net Sept 2011 © 2013 IBM Corporation
  • 13. OSLC – Based on Linked Data Lifecycle Tool <http://cm/bugs/2314> Common Resource Definitions a oslc_cm:ChangeRequest ; Change dcterms:relation <http://cm/bugs/1235>; Management oslc_cm:implementsRequirement <http://rm/req/56> . Service Management Help Desk <http://rm/req/56> a oslc_rm:Requirement ; Lifecycle Tool dcterms:title “Online shopping cart”; Requirements oslc_rm:validatedBy <http://qm/tc/17> . Management Lifecycle Tool Quality Management Delegated Dialogs Service Management Deployment Link Preview http://open-services.net © 2013 IBM Corporation
  • 14. Agenda Uses and Background What is it Linked Data Standardization Open Source © 2013 IBM Corporation
  • 15. Linked Data – state of the art Has some limitations: – Focused on exposing data with relationships – No support for update and creation of granular data – Data updates achieved by receiving new dataset dumps – Often an export transformation and dump of data – Based on best practices -- don’t all align and based on specialized usage Provides great value for many cases Limited interoperability: – Interoperable solutions are limited due to no agreement on best practices – Applications support least common denominator or hacks © 2013 IBM Corporation
  • 16. Evolution of W3C Linked Data  W3C Linked Data  Four design principles proposed by Tim Berners-Lee in a 2006 article  Standardization will accelerate industry adoption and enhance interop  IBM Sponsored W3C Workshop on Linked Enterprise Data Patterns (Dec 2011) – Participating organizations included EMC, Elsevier, IBM, Nokia, Oracle – Workshop recommended W3C produce a standard “which defines a Linked Data Platform”, leveraging RDF  IBM Submitted Linked Data Basic Profile 1.0 proposal to W3C (March 2012) – Base the Linked Data Platform foundation on OSLC Core technology and experience – Co-submitters: – Supporters: © 2013 IBM Corporation
  • 17. W3C Linked Data Platform (LDP) Working Group  Workgroup membership spans 49 participants from 30 organizations  Participants: IBM, Oracle, Fujitsu, EMC, BBC, DERI, Cambridge Semantics, …  Define a W3C Standard of “Linked Data” – Based on Tim Berners-Lee four principles of Linked Data – HTTP-based (RESTful) application integration patterns using read/write Linked Data – Will complement SPARQL and will be compatible with standards for publishing Linked Data, bringing the data integration features of RDF to RESTful, dataoriented software development.  On target to deliver a W3C Candidate Recommendation by early 2014 Details @ http://www.w3.org/2012/ldp © 2013 IBM Corporation
  • 18. W3C Linked Data Platform (LDP) CAUTION: Specification is still under construction. © 2013 IBM Corporation
  • 19. Linked Data Platform - Resource  What resource formats should be used?  What literal value types should be used?  Are there some typical vocabularies that should be reused?  How is optimistic collision detection handled for updates?  What should client expectations be for changes to linked-to resources, such as type changes?  What can servers do to ease the burden of constraints for resource creation? © 2013 IBM Corporation
  • 20. Request LDP Resource – GET a simple example GET /container1/member1 HTTP/1.1 Host: example.org Accept: text/turtle Response 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://w3.org/ns/ldp#>. container1 member 1 member2 member3 http://example.org <http://example.org/container1/member1> a o:Cash; dcterms:title “ACME Bank savings account”; o:value 45.00. © 2013 IBM Corporation
  • 21. Linked Data Platform - Container  To which URLs can I POST to create new resources?  Where can I GET a list of existing resources?  How is the order of the container entries expressed?  How do I get information about the members along with the container?  How do I GET the entries of a large container broken up into pages?  How can I ensure the resource data is easy to query? © 2013 IBM Corporation
  • 22. Request ldp:Container – GET a simple example GET /container1/ HTTP/1.1 Host: example.org Accept: text/turtle container1 member1 Removed HTTP headers to save some space @prefix dcterms: <http://purl.org/dc/terms/>. member2 member3 Response @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix ldp: <http://w3c.org/ns/ldp#>. http://example.org <http://example.org/container1/> a ldp:Container; dcterms:title "A very simple container"; rdfs:member <member1>, <member2>, <member3>. © 2013 IBM Corporation
  • 23. Request ldp:Container – create resource and add POST /container1/ HTTP/1.1 Host: example.org Content-type: text/turtle Content-length: 324 @prefix dcterms: <http://purl.org/dc/terms/>. @prefix o: <http://example.org/ontology/>. <> Response a o:Stock; dcterms:title “ACME Co.”; o:value 100.00. container1 member1 member2 member3 +member4 http://example.org HTTP/1.1 201 CREATED Location: http://example.org/container1/member4 © 2013 IBM Corporation
  • 24. Request ldp:Container – get updated GET /container1/ HTTP/1.1 Host: example.org Accept: text/turtle container1 member1 Removed HTTP headers to save some space @prefix dcterms: <http://purl.org/dc/terms/>. Response @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix ldp: <http://w3c.org/ns/ldp#>. member2 member3 member4 http://example.org <http://example.org/container1/> a ldp:Container; dcterms:title "A very simple container"; rdfs:member <member1>, <member2>, <member3>, <member4>. © 2013 IBM Corporation
  • 25. ldp:Container – Net worth example Disclaimer: picture only in UML, does not follow UML constraints © 2013 IBM Corporation
  • 26. ldp:Container – slightly more complex example # The following is the representation of # http://example.org/netWorth/nw1 @prefix o: <http://example.org/ontology/>. @prefix dcterms: <http://purl.org/dc/terms/>. @prefix ldp: <http://w3c.org/ns/ldp#>. <http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>. <http://example.org/netWorth/nw1/assetContainer/> a ldp:Container; dcterms:title "The assets of JohnZSmith"; ldp:membershipSubject <http://example.org/netWorth/nw1>; ldp:membershipPredicate o:asset. • Membership predicate is something other than rdfs:member (o:asset) • Subject for members is something other than the container © 2013 IBM Corporation
  • 27. ldp:Container – Member Information # chopped @prefix <http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>. <http://example.org/netWorth/nw1/assetContainer/> a ldp:Container; dcterms:title "The assets of JohnZSmith"; ldp:membershipSubject <http://example.org/netWorth/nw1>; ldp:membershipPredicate o:asset. <http://example.org/netWorth/nw1/assetContainer/a1> a o:Stock; o:value 10000. <http://example.org/netWorth/nw1/assetContainer/a2> a o:Bond; o:value 20000. • Statements about the member resources included with container representation response © 2013 IBM Corporation
  • 28. Request ldp:Container – Only data about it, no members GET /netWorth/nw1?non-member-properties HTTP/1.1 Host: example.org Accept: text/turtle; charset=utf-8 Removed HTTP headers to save some space Response @prefix o: <http://example.org/ontology/>. @prefix dcterms: <http://purl.org/dc/terms/>. @prefix ldp: <http://w3c.org/ns/ldp#>. <http://example.org/netWorth/nw1> a o:NetWorth. # Members omitted <http://example.org/netWorth/nw1/assetContainer/> a ldp:Container; dcterms:title "The assets of JohnZSmith"; ldp:membershipSubject <http://example.org/netWorth/nw1>; ldp:membershipPredicate o:asset. © 2013 IBM Corporation
  • 29. ldp:Container – Paging (first page) # Request-URI: http://example.org/netWorth/nw1?firstPage <http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>. <http://example.org/netWorth/nw1/assetContainer/> a ldp:Container; dcterms:title "The assets of JohnZSmith"; bp:membershipSubject <http://example.org/netWorth/nw1>; bp:membershipPredicate o:asset. <http://example.org/netWorth/nw1/assetContainer/?firstPage> a ldp:Page; ldp:pageOf <http://example.org/netWorth/nw1/assetContainer/>; ldp:nextPage <http://example.org/netWorth/nw1/assetContainer/?p=2>. <http://example.org/netWorth/nw1/assetContainer/a1> a o:Stock; o:value 100.00. <http://example.org/netWorth/nw1/assetContainer/a2> a o:Cash; o:value 50.00. • New ldp:Page resource • Members of containers are paged © 2013 IBM Corporation
  • 30. ldpContainer – Paging (last page) # Request-URI: http://example.org/netWorth/nw1/assetContainer/?p=2 # omitted @prefix <http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a3>. <http://example.org/netWorth/nw1/assetContainer/> a bp:Container; dcterms:title "The assets of JohnZSmith"; bp:membershipSubject <http://example.org/netWorth/nw1>; bp:membershipPredicate o:asset. <http://example.org/netWorth/nw1/assetContainer/?p=2> a ldp:Page; ldp:pageOf <http://example.org/netWorth/nw1/assetContainer/>; ldp:nextPage rdf:nil. <http://example.org/netWorth/nw1/assetContainer/a5> a o:Stock; dcterms:title "Big Co."; o:value 200.02. • Last page indicated by ldp:nextPage set to rdf:nil © 2013 IBM Corporation
  • 31. ldp:Container – Paging (ordering) # Request-URI: http://example.org/netWorth/nw1/assetContainer/?firstPage # omitted @prefix <http://example.org/netWorth/nw1> a o:NetWorth; o:asset <http://example.org/netWorth/nw1/assetContainer/a1>, <http://example.org/netWorth/nw1/assetContainer/a2>. <http://example.org/netWorth/nw1/assetContainer/> a ldp:Container; dcterms:title "The assets of JohnZSmith"; ldp:membershipSubject <http://example.org/netWorth/nw1>; ldp:membershipPredicate o:asset. <http://example.org/netWorth/nw1/assetContainer/?firstPage> a ldp:Page; ldp:pageOf <http://example.org/netWorth/nw1/assetContainer/>; ldp:containerSortPredicates (o:value). <http://example.org/netWorth/nw1/assetContainer/a1> a o:Stock; o:value 100.00. <http://example.org/netWorth/nw1/assetContainer/a2> a o:Cash; o:value 50.00. • Order indicated by ldp:containerSortPredicate • No ordinal predicate introduced, leverage domain model © 2013 IBM Corporation
  • 32. Agenda Uses and Background What is it Linked Data Standardization Open Source © 2013 IBM Corporation
  • 33. Open Source Linked Data projects Simple yet solid framework for building RESTful Web services based on JAX-RS RDF Java API and Fuseki provides REST-style SPARQL HTTP interface Easily develop semantic web apps by providing tools to manipulate RDF data, create RESTful Web Services Extend traditional content management systems with semantic services SDK and supporting tools to help the community to adopt OSLC specifications and build compliant tools © 2013 IBM Corporation
  • 34. Handling Linked Data requests - GET @GET @Path("{crId}") @Produces({“application/rdf+xml”, “application/xml”, “application/json”}) public ChangeRequest getChangeRequest(@Context final HttpServletResponse httpServletResponse, @PathParam(”crId") final String crId) { final ChangeRequest cr = Persistence.getChangeRequest(crId); if (cr != null) { cr.setServiceProvider(ServiceProviderSingleton.getServiceProviderURI()); setETagHeader(getETagFromChangeRequest(cr), httpServletResponse); return cr; } throw new WebApplicationException(Status.NOT_FOUND); } © 2013 IBM Corporation
  • 35. Handling Linked Data requests – HTTP POST @OslcCreationFactory ( resourceTypes = {“http://open-services.net/ns/cm#ChangeRequest”} ) @POST @Consumes({“application/rdf+xml”, “application/xml”, “application/json”}) @Produces({“application/rdf+xml”, “application/xml”, “application/json”}) public Response addChangeRequest(@Context final HttpServletRequest httpServletRequest, @Context final HttpServletResponse httpServletResponse, final ChangeRequest changeRequest) throws URISyntaxException { // ... create magic happens here ... return Response.created(about).entity(changeRequest).build(); } © 2013 IBM Corporation
  • 36. Annotating Classes for RDF @OslcNamespace(“http://open-services.net/ns/cm#”) @OslcResourceShape(describes = “http://open-services.net/ns/cm#ChangeRequest”) public final class ChangeRequest extends AbstractResource { private String status; private String title; @OslcPropertyDefinition("http://open-services.net/ns/cm#status") public String getStatus() { return status; } @OslcPropertyDefinition("http://purl.org/dc/terms/#title") public String getTitle() { return title; } } © 2013 IBM Corporation
  • 37. Wrapping up  Linked Data space is actively evolving and maturing  Loosely-coupled application integrations have benefited  Good alignment with REST applications  Further standardization will help the cause  Stay tuned for W3C Linked Data Platform © 2013 IBM Corporation
  • 38. Questions? © 2013 IBM Corporation
  • 39. BACKUP © 2012 IBM Corporation
  • 40. Open Services for Lifecycle Collaboration (OSLC) Working to improve the way software lifecycle tools share data Open Services for Lifecycle Collaboration Lifecycle integration inspired by the web  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 Inspired by the web Proven Automation Monitoring Linked Data Free to use and share Changing the industry Open Innovative @ http://open-services.net © 2013 IBM Corporation

Editor's Notes

  1. Reference: “Linked Data”, Tim Berners-Lee, 2006-07-27
  2. Points:At the core is a set of Statements (aka facts), which are typically written down or learnedTell the story as if the present is a tester, they have knowledge of their test cases and of Joe. In the Web 1.0/2.0 way to learn these things is by publishing on a HTML page for a human consumer of itThis follows TBL’s 4 rules for linked dataFirst we give these statement URIs so computers can identify them and understand them. Grouping into subject-predicate-object builds the statementNext we can do a HTTP GET to learn moreWhen we learn more, it is in the form of more statements with URIsThose URIs point to more things or relate things back to things we already know (Joe)Jira http://www.atlassian.com/software/jira/overview
  3. Points:Same information as the previous slide but just as a direct graphHighlight this is just the way the web worksCan point out that easy to extend to include things like: can learn when dependent software has been fixed, built and where it is available
  4. Key pointsRequest URI == subjectResource has a typeSimple defnResponse representation is the full state of the resource (there is no other data the server knows about it, all other data is either inbound links or stored where it doesn’t know)
  5. http://incubator.apache.org/clerezza/ Clerezza allows to easily develop semantic web applications by providing tools to manipulate RDF data, create RESTful Web Serviceshttp://stanbol.apache.org/index.html Apache Stanbol&apos;s intended use is to extend traditional content management systems with semantic serviceshttp://jena.apache.org/documentation/serving_data/index.html Apache Jena and FusekiFuseki is a SPARQL server. It provides REST-style SPARQL HTTP Update, SPARQL Query, and SPARQL Update using the SPARQL protocol over HTTP.http://incubator.apache.org/wink/ http://eclipse/lyo