50
REST Web Service Description for GraphBased Service Discovery ICWE 2015 Authors: Rosa Alarcón Rodrigo Saffie ([email protected]) Nikolas Bravo ([email protected]) Javiera Cabello 25th June 2015 Pontificia Universidad Católica de Chile Engineering School Computer Science Department

(Web Composition and Mashups track) "REST Web Service Description for Graph-Based Service Discovery" - Rosa Alarcon, Rodrigo Saffie, Nikolas Bravo, and Javiera Cabello

Embed Size (px)

Citation preview

RESTWeb  Service  Description  for  Graph-­‐Based  Service  Discovery

ICWE  2015

Authors:Rosa  AlarcónRodrigo  Saffie ([email protected])Nikolas Bravo  ([email protected])Javiera  Cabello

25th  June  2015

Pontificia  Universidad  Católica  de  Chile  Engineering   SchoolComputer  Science  Department

Outline

1. Motivation &  Problem Statement2. Related  Work3. Rest API  Description (RAD)4. Results5. Summary &  FutureWork

Outline REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MOTIVATION  AND  PROBLEM  STATEMENT

Motivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Motivation

• Let's  suppose  we  want to  create  a  service  where  you  can  look  up  your  favorite  artist's  top  tracks

• Web  services  will  allow  us  to  use  what  others  have  already  done

• So  how  would  we  proceed  to  create  such  service?

Motivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MotivationMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MotivationMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MotivationMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MotivationMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MotivationMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Motivation

• Manual  search  of  web  services  by  category isinsufficient

• Descriptions  are  not  machine-­‐readable

• Similar  services  are  not  connected

Motivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

REST  WS  PopularityMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Search

Interest

Source:  Google  Trends,  June  10,  2015

REST  WS  PopularityMotivation REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Source:  ProgrammableWeb,  Mar  24,  2014

Problem  Statement

• Nowadays REST  services are  isolated• We aim for automatic discovery and  composition of  REST  Web  Services– Facilitate that end-­‐users find the resources theyneed

– Facilitate the creation of  new  services uponexisting services

Problem  Statement REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RELATED  WORK

Related  Work REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Related  Work

• RAML– http://raml.org/

• RESTdesc– http://restdesc.org/

• HYDRA– http://www.markus-­‐lanthaler.com/hydra/

• WADL– http://www.w3.org/Submission/wadl/

Related  Work REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

REST API DESCRIPTION  (RAD)

RAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Rest  API  Description  (RAD)

• Hypermedia-­‐centric

• Machine-­‐readable  description

• Connection of  services at  a  semantic level

RAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  MetamodelRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  Implementations

• RAD  can  be  implemented  in  multiple  formats• We  used:– Microdata– JSON

RAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  Implementations:  JSONRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  Implementations:  JSONRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  Implementations:  JSONRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  Implementations:  JSONRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RAD  MetagraphRAD REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RESULTS

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

An  Illustrative  Example

• Spotify– https://developer.spotify.com/web-­‐api/

• Songkick– http://www.songkick.com/developer

• Uber– https://developer.uber.com/

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Extended  Vocabulary

• Extended  schema.org vocabulary• Parameters  and  actions  have  an  URI• Specialization  relationships  between  concepts

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

GraphResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Vocabulary

Use  Cases

• We  will  analize  two  use  cases:

– Service Discovery

– Service Composition

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Use  Case:  Discovery

A  user wants to  find a  given artist’s playlists

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

,

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  Discovery  Cypher  QueryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

MATCH  (concept)<-­‐[:`is  a`]-­‐(resources)-­‐[action]-­‐>(operations)-­‐[:uses]-­‐>(parameters)

WHERE  concept.GRI=~  'http://schema.org/Thing/CreativeWork/MusicPlaylist.*'

AND  action.GRI =  

'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction'

AND  concept:  `Resource  Concept`  

AND  resources:  Resource  

AND  operations:  Operation

AND  parameters:  Parameter

RETURN  concept,  resources,  operations,  parameters

Use  Case:  DiscoveryResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Concept:  'http://schema.org/Thing/CreativeWork/MusicPlaylist’Action:  'http://schema.org/Action/GetAction/GetMusicRecordingCollectionAction’

Use  Case:  Composition

A  user  wants  to  attend  a  concert  but  her  favorite  band  is  not  in  town.  She  decides  to  go  to  a  similar  artist  concert  and  needs  to  know  the  

venueswhere  they  will  play  as  well  as  information  of  taxis  to  reach the event.

Results REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Use  Case:  CompositionResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

CompositionResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Concept:  ‘(…)/MusicGroupCollection’Action:  ‘(…)/GetSimilarArtistsAction’

CompositionResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Concept:  ‘(…)/MusicEventCollection’Action:  ‘(…)/MusicEventSearchAction’

CompositionResults REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Concept:  ‘(…)/TaxiCollection’Action:  ‘(…)/GetTaxiCollectionAction’

SUMMARY  &FUTURE  WORK

Summary REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Summary

• Natural  language  descriptions  are  insufficientfor  automatic  discovery  &  composition

• A  hypermedia-­‐centered model  facilitates  discovery  &  composition

Summary REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Summary

• A  graph-­‐based solution allows to  representlinks between REST  web  services

• RAD  allows resources and  operations to  be  discovered through concepts and  actions

Summary REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Future  Work

• Automatic  service  composition

• Metalanguage  for  RAD  graph  queries

• Natural  language  queries

Future  Work REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

Acknowledgements

• Engineering’s Graduate School at  PUC

• Computer Science Dept.  at  PUC

Future  Work REST  Web  Service  Description   for  Graph-­‐Based  Service  Description

RESTWeb  Service  Description  for  Graph-­‐Based  Service  Discovery

ICWE  2015

Authors:Rosa  AlarcónRodrigo  Saffie ([email protected])Nikolas Bravo  ([email protected])Javiera  Cabello

25th  June  2015

Pontificia  Universidad  Católica  de  Chile  Engineering   SchoolComputer  Science  Department