ICWE 2015 - REST Web Service Description for Graph-Based Service Discovery
-
Upload
nikolas-gonzalo-bravo-rakela -
Category
Technology
-
view
197 -
download
1
Transcript of ICWE 2015 - REST Web Service Description for Graph-Based Service Discovery
REST Web Service Description for Graph-Based Service Discovery
ICWE 2015
Authors:Rosa AlarcónRodrigo SaffieNikolas BravoJaviera 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 & Future Work
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 is insufficient
• 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
Sear
ch In
tere
st
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 they
need– Facilitate the creation of new services upon
existing 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 venues where 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 insufficient for 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 represent links 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
REST Web 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
Extended OntologyResults REST Web Service Description for Graph-Based Service Description
Template
• Blah
Template REST Web Service Description for Graph-Based Service Description