Mashup application: âa situational, short-living Web application with focus on Web Interface integration that uses data and/or application logics (e.g., Web ...
1
Semantics-enabled Web APIs selection patterns Devis Bianchini, Valeria De Antonellis, Michele Melchiori Department of Information Engineering Università di Brescia - Italy Semantics-enabled Web APIs selection patterns
2
Mashup application: “a situational, short-living Web application with focus on Web Interface integration that uses data and/or application logics (e.g., Web Services) originated from third parties and that are made available through Web APIs”
Semantics-enabled Web APIs selection patterns
Fast Web application development scenario Choose some relevant Web APIs Web APIs Registry
Decide which ones should be connected (exploratory perspective)
connected Glue alternative
Semantics-enabled Web APIs selection patterns
3
Fast Web application development Which open issues? Huge quantity of Web APIs requires a support for their effective selection and integration (>3k APIs in ProgrammableWeb.com, >20k user-defined mashups in Yahoo! Pipes). Heterogeneity of Web APIs (I/Os, operations).
Our contributions: 1. A browsable Web API registry built from automated matching techniques to establish semantic links among APIs 2. Semi-automated selection patterns for Web APIs
Semantics-enabled Web APIs selection patterns
4
5
Talk Outline
A semantic framework for Mashup development
Web API Selection patterns
The tool prototype implementation
Conclusions and future work
Semantics-enabled Web APIs selection patterns
6
We rely on existing technologies and tools
Focus of this talk
Wn
W3
URI 2
W2
W3
URI 3
Web API Registry
URI 3
URI 2 URI 1
URI 2
URI 1
W2
Wn
URI n
Component APIs
Semantics-enabled Web APIs selection patterns
Mashup development
URI n
Web API Semantic Descriptors (SDs)
W1
URI n
W3
URI 3 URI 2
Wn
W2 URI n
W1
Recommendation of Web APIs
URI 3
Matchmaking and linking of semantic descriptors
Semantic annotation
URI 1
Developing & publishing Web API
Future work consumer/ mashup designer
component provider
OBJECTS
ACTIVITIES
ROLES
Mashup development: our vision
Web application
7
Web API Annotation Web APIs are usually described using plain, unstructured HTML - semantic annotation of Web APIs is still a difficult task Semantic annotation of APIs in our framework is therefore performed according to the steps suggested in the SWEET tool [1]: (a)
identification of elements (that is, operations, inputs, outputs) in the unstructured HTML document which represents the API, to produce an hRESTS description;
(b)
search for ontologies suitable for elements annotation and of taxonomies of categories for API classification;
(c)
annotation and classification of the API according to the MicroWSMO notation.
[1] M. Maleshkova, C. Pedrinaci, and J. Domingue. Semantic annotation of Web APIs with SWEET. In Proc. of 6th Workshop on Scripting and Development for the Semantic Web, 2010. Semantics-enabled Web APIs selection patterns
8
Web API Semantic Descriptor An abstract representation:
W Wii == 〈uri 〈uriii,CAT(W ,CAT(Wii),OP(W ),OP(Wii),EV(W ),EV(Wii)〉 )〉 opl ∈OP(Wi) op opll == 〈method 〈methodll,addr ,addrll,IN(op ,IN(opll),OUT(op ),OUT(opll)〉 )〉
concept
Semantics-enabled Web APIs selection patterns
set of concepts
evm ∈EV(Wi) ev (ev m)〉 evmm == 〈type 〈typemm,OUT ,OUTev )〉 ev(evm
set of concepts
9
Functional coupling between Web APIs
A Web API descriptor Wi can be functionally coupled with another Web API descriptor Wj if: 1.
CouplIO(Wi, Wj) ≥ θ ∈ [0..1] (functional coupling degree)
Union set of the outputs of the event evi
Semantics-enabled Web APIs selection patterns
10
Functional similarity between Web APIs A Web API descriptor Wi is functionally similar to another Web API descriptor Wj if: 1. 2.
The categories of Wi and Wj are compatible SimIO(Wi, Wj) ≥ δ ∈ [0..1] (functional similarity degree)
Union of the input sets of all the Wj operations
Semantics-enabled Web APIs selection patterns
Union of the output sets of all the Wi operations
Concept affinity
11
Web API Registry
The registry design is based on the Web APIs conceptual description:
• semantic descriptor of the API (semantic annotation)
• semantic links between similar and coupled Web APIs
Semantics-enabled Web APIs selection patterns
12
Web API Registry ComingSoon InternetVideoArchive 0.37 Coupl IO=
Cou
plI = O 0. 90
GoogleMaps Coupl
IO =0.78
SimIO=0.60
FindMovieTheatres u Co
CouplIO=0.83
1 0.8 = O
65
pl I
Co
upl
IO = 0
MoviesAndTheatres
.73
SimIO=0.86 1.00 = l O pI Co u
Semantics-enabled Web APIs selection patterns
CouplIO=0.60
MapViewer
13
Web API Selection Patterns σ = 〈W Goal,, m , δ Goal,,