This document summarizes a research presentation about using a graph-based method called maximum activation to provide personalized recommendations of web APIs. The method uses a graph containing information about APIs, mashups, developers and their relationships. It calculates an activation value for candidate APIs based on their connections to a user's profile in the graph, with more recent and closely related APIs receiving higher activation. Experiments showed the approach could track changes in API popularity over time and that user preferences and the aging constant impacted results. Future work involves publishing the API dataset and expanding the recommendation method.
Czech Technical University in Prague Personalised Graph-Based Selection of Web APIs
1. Czech Technical
University in Prague
Personalised Graph-Based Selection of
Web APIs
Milan Dojchinovski1, Jaroslav Kuchar1, Tomas Vitvar1 and Maciej Zaremba2
1 Faculty of Information Technology 2Digital Enterprise Research Institute
Czech Technical University in Prague National University of Ireland, Galway
Milan Dojchinovski
milan.dojchinovski@fit.cvut.cz - @m1ci - http://dojchinovski.mk
The 11th International Semantic Web Conference (ISWC 2012)
November 10-15, 2012, Boston, USA
Except where otherwise noted, the content of this presentation is licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
2. Overview
‣ Introduction and Motivation
‣ Maximum Activation Method
‣ Experiments
‣ Related Work
‣ Conclusion and Future Work
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 2
3. Motivation
‣ Provide Personalized Selection of Web APIs
‣ Developers context
- relations with other developers
- the past history
‣ APIs context
- categories they belong to
- mashups they were used in
‣ Temporal aspect
- users want currently popular or trending APIs
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 3
4. Statistics
‣ Exponential growth of Web APIs
‣ ProgrammableWeb directory lists approx. 7,800 API descriptions
9,000
8,000 num. of APIs
exponential function
7,000
3 months
6,000
4 months
5,000
6 months
4,000
9 months
3,000
18 months
2,000
8 years
1,000
0
2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 ov. 20
12
N
Total APIs Over Time
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 4
5. Overview
‣ Introduction and Motivation
‣ Maximum Activation Method
‣ Experiments
‣ Related Work
‣ Conclusion and Future Work
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 5
6. Linked Web APIs
‣ ProgrammableWeb directory as RDF graph
Used ontologies:
• FOAF (prefix foaf)
• WSMO-lite (prefix wl)
• Dublin Core (prefix dc)
• SAWSDL (prefix sawsdl)
• new concepts and props.:
- ls:Mashup
- ls:Category
- ls:usedAPI
Excerpt from the Linked Web APIs dataset
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 6
7. Maximum Activation Method
‣ Flow networks as underlying concept
- nodes, edges, capacities
‣ Activation: a measure of connectivity between two nodes
‣ Inputs:
- Linked Web APIs graph
- a user profile
- user preferences
- aging constant
- a set of Web API candidates
‣ Output:
- maximum activation value for each Web API candidate
‣ Capacity function = user_preference_function ∗ aging_function
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 7
8. User Preferences
‣ How the user sees an importance of an edge semantic
not preferred neutral preferred
< 50 50 > 50
‣ Usage Example
- edge User - User more than API - Mashup
‣ Implications
- assigning higher/lower user preference will lead to higher/lower activation value
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 8
9. Aging Function
‣ Usage
- promoting more recent Web APIs
- a higher constant accelerates the edge s aging process
1.0
λ = 0.001
λ = 0.01
λ = 0.1
0.8
Ageing function
0.6
A(ei,t) = A(ei,t0 ) ∗ e-t!
0.4
0.2
0.0
0 50 100 150 200 250 300 350
Age (# weeks)
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 9
10. The Algorithm
Inputs: Steps
- Linked Web APIs graph 1. create a profile node
- user profile 2. for each API candidate compute max. activation
- user preferences 3. select an API with the highest activation
- aging constant
- Web API candidates
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 10
11. Overview
‣ Introduction and Motivation
‣ Maximum Activation Method
‣ Experiments
‣ Related Work
‣ Conclusion and Future Work
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 11
12. Experiments
‣ Questions addressed
- How can we evaluate an API popularity evolution over time?
- How does the aging constant influence the maximum activation?
- What is the impact of the user preference function?
‣ Experiment setup
- full Linked Web APIs dataset
- snapshot created on May 18th, 2012
- 5.988 APIs, 6.628 mashups, 2.335 user profiles
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 12
13. API Popularity Evolution
‣ Evaluation of 3 Web APIs (Mapping category) for a period of 3 years
‣ Aging constant set to: 0.01 and 0.1
Google Maps Google Maps
400 600 800 1000
Bing Maps Bing Maps
5000
Yahoo Maps Yahoo Maps
Popularity
Popularity
3000
1 2
2
4 1
200
3
1000
01−06−2009 01−06−2010 01−06−2011 01−06−2012 01−06−2009 01−06−2010 01−06−2011 01−06−2012
Time Time
a) aging constant ! = 0.1 b) aging constant ! = 0.01
‣ Higher value allows deeper, more sensitive evaluation
‣ Google Maps API constantly maintains its popularity
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 13
14. Overview
‣ Introduction and Motivation
‣ Maximum Activation Method
‣ Experiments
‣ Related Work
‣ Conclusion and Future Work
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 14
15. Maximum Activation vs. Spreading Activation
Spreading Activation
- simulates the process of associative reasoning
‣ Terminating function
- MA: no terminating function, always assigns an activation
- SA: number of activated nodes, number of iterations, etc.
‣ Usage
- MA: selection of Web APIs
- SA: searching in associative networks, cross-domain recommendations
‣ Meaning of Activation
- MA: global meaning - measure of connectivity
- SA: local meaning - level of interest
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 15
16. Overview
‣ Introduction and Motivation
‣ Maximum Activation Method
‣ Experiments
‣ Related Work
‣ Conclusion and Future Work
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 16
17. Conclusion and Future Work
‣ Activation-Based Web API Selection method
‣ Personalization enabled by:
- capturing developers context
- capturing APIs context
- expressing user s preferences
‣ Linked Web APIs dataset
‣ Future work directions:
- publish the Linked Web APIs dataset to the LOD cloud (in cooperation with PW)
- extend the method:
• assigning capacities to individual edges
• incorporate different SNA metrics
Personalized Graph-Based Selection of Web APIs - @m1ci - http://dojchinovski.mk 17
18. Feedback
Thank you!
Questions, comments, ideas?
Milan Dojchinovski @m1ci
milan.dojchinovski@fit.cvut.cz http://dojchinovski.mk
Except where otherwise noted, the content of this presentation is licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported 18