Apps for ScienceElsevier | Developer Network
WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 – Much to do about … a lot
2
GadgetsWidgets
IFrame
HTML5
Browser Add-ons
PluginsFacebook Apps
Mobile Apps
Web2.0
Open APIOpen Data
Open GovJavaScript
Linked Data
WorkShop – OpenSocial Gadgets for Science Web 2.0 – iGoogle is Apps
3
4
1 billion downloads350,000 Apps
WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 - Mobile Apps is Apps
WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 – Browser Plugins is Apps
5
Opera Browser – 2.5%
IE – 26%
Mozilla – 42.8%
Chrome – 23.8%Safari - 4%
WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 - Facebook is Apps
6
Facebook Apps500 million users
WorkShop – OpenSocial Gadgets for ScienceSciVerse is OpenSocial - Facebook versus OpenSocial
7
WorkShop – OpenSocial Gadgets for ScienceSciVerse is OpenSocial
Facebook versus OpenSocial 500 million versus 900 million users
8
WorkShop – OpenSocial Gadgets for ScienceSciVerse is Innovation in STM Publishing
9
Gutenberg Printing Press 1440Lodewijk Elsevir 1580
WorkShop – OpenSocial Gadgets for ScienceWorld Wide Web
10
Tim Berners-Lee - first Web Server (EVER) 1990
WorkShop – OpenSocial Gadgets for ScienceScienceDirect Online – more than 10 million scientific articles
11
WorkShop – OpenSocial Gadgets for ScienceScopus online – 40 million abstracts
12
WorkShop – OpenSocial Gadgets for ScienceSciVerse Apps – HTML, JavaScript, APIs
13
What is an App? The IFRAME Revolution
<iframe src="iframe1.html" width=“400" height=“200"></iframe>
<script type=‘text/javascript’> Function fnWrite() {getElementById(‘content-div’).innerHTML = “HelloWorld”;}</script><div id=‘content-div’></div>
WorkShop – OpenSocial Gadgets for Science
14
What are APIs? What is a Mashup?
API
API
SciVerse APIs
<script type=‘text/javascript’>
url1 = ‘http://api.sciverse.com/search’;data1 = makeUrlRequest(url1);
param1=data1[0];
url2 = ‘http://api.nytimes.com/search’;data2 = makeUrlRequest(url2, param1);
mashup = data2;
getElementById(‘div1’) = mashup;
</script>
sciencedirect scopus
WorkShop – OpenSocial Gadgets for Science
15
SciVerse
WorkShop – OpenSocial Gadgets for Science
16
SciVerse Content API
Content API - Search
http://api.elsevier.com/content/search/index:CLUSTER?query=xx&view=VIEW
CLUSTER HUB, SCIDIR, SCOPUS, AUTHOR, AFFILIATION
VIEW STANDARD, COMPLETE
query
date
Content API - Retrieval
http://api.elsevier.com/content/CONTENT-CATEGORY/LABEL:ID?view=VIEW
CONTENT-CATEGORY article, abstract, author, affiliation
LABEL EID, PII, DOI, SCOPUS_ID, AUTHOR_ID, AFFIL_ID, PUBMED_ID
VIEW META, REF, FULL, LIGHT, STANDARD
WorkShop – OpenSocial Gadgets for Science
17
SciVerse – Framework API
SciVerse – Framework API
gadgets.sciverse.getAllResults(callback)
gadgets.sciverse.getArticleContent(callback)
gadgets.sciverse.getContextInfo(callback)
gadgets.sciverse.getPageUrl(callback)
gadgets.sciverse.getResults(requestedResults, callback)
gadgets.sciverse.invokeResultsView(resultIndex, viewParams)
gadgets.sciverse.makeContentApiRequest(url, callback, requestHeaders)
gadgets.sciverse.makeRequest(url, callback, params)
gadgets.hub.executeSearch(searchTerms)
WorkShop – OpenSocial Gadgets for Science
18
SciVerse – Framework API - ContextInfo
accountId, artNum, au1, au1First, au1Init, au1Suffix, au1Sur, auCorp, authorKeywords, date, docTitle, doi, entitlement, genre, indexTerms, individualUser, isbn, issn, issue, keywords, offset, originPage, otherKeywords, pageContentDivTagName, pages, pageType, part, partTitle, partValue, pii, platform, scDocId, scopusFlag, searchQuery, searchTerms, secureAuthToken, sortOrder, sPage, srcTitle, ssn, timestamp, volume, year
function getContextInfoCallback(result){ // get authtoken for content API call var authtoken = result.secureAuthtoken; var searchterm = result.searchTerms;}
<script type="text/javascript"> var prefs = new gadgets.Prefs(); var authToken = prefs.getString("secureAuthtoken"); </script>
WorkShop – OpenSocial Gadgets for Science
19
SciVerse – Content API
var requestHeaders = {}; requestHeaders['X-ELS-APIKey'] = your-API-key; requestHeaders['X-ELS-Authtoken'] = authtoken; requestHeaders['Accept'] = "application/json";
var params = {}; params[gadgets.io.RequestParameters.HEADERS] = requestHeaders; // only necessary when using gadgets.io.makeRequest //params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.NONE; //params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; gadgets.sciverse.makeContentApiRequest(url, callback, params);
WorkShop – OpenSocial Gadgets for Science
20
SciVerse – Mashup<script type=‘text/javascript’>Var myapikey = ‘aaaass223ssss’;Function fnCreateMashup(){ gadgets.sciverse.getContextInfo(fnContextInfoCallback);}
Funtion fnContentInfoCallback(response){ var search = response.searchQuery; var url = ‘http://api.nytimes.com/svc/search/v1/article?query=‘+search+’&api-key=‘+myapikey+ ‘format=json’; var params = { ‘href’ : url, ‘format’ : ‘json’, ‘authz’ : ‘none’ }; osapi.http.get(params1).execute(fnNyTimesCallback);}
Function fnNyTimesCallback(nytimesResponse) { var output = ‘’; // using jquery $.each(nytimesResponse.content.results, function(I, result){ output = output + result.data + ‘ – ‘ + result.title; }}Gadgets.util.registerOnLoadHandler(fnCreateMashup);</script>
WorkShop – OpenSocial Gadgets for Science
21
SciVerse – OpenSocial Definition File
<?xml version="1.0" encoding="UTF-8"?><Module> <ModulePrefs title="SciVerseExamples-ContentAPICall1" author_email="[email protected]"> <Require feature="opensocial-0.9" /> <Require feature="sciverse" /> <Require feature="hub" /> <Require feature="org.jquery.core-1.4.2" /> </ModulePrefs> <Content type="html" view="canvas"><![CDATA[<!-- The code for Canvas view is here. -->]]></Content> <Content type="html" view="profile"><![CDATA[ Profile View]]></Content> <Content type="html" view="sciverseResultsView"><![CDATA[
<!-- The code for Sciverse Results View view is here. --><div>Sciverse Results View view for SciVerseExamples-ContentAPICall1.</div>
]]></Content></Module>
WorkShop – OpenSocial Gadgets for Science
22
SciVerse – Integration Points
view Integration point
profile Hub- Home page, Search Results pageScienceDirect- Full Text Article page, Search Results pageScopus- Record page
canvas New full page
sciverseResultsView Hub- Search Results page (under each result)ScienceDirect- Search Results page (under each result)
WorkShop – OpenSocial Gadgets for Science
23
SciVerse – Resources
SciVerse – SDK plugin for Eclipsehttp://developer.sciverse.com/sdk
SciVerse – Content APIhttp://developer.sciverse.com/api
SciVerse – Framework APIhttp://developer.sciverse.com/framework
Follow @SciVerseDevhttp://twitter.com/sciversedev
Developer Bloghttp://developer.sciverse.com/blog
Apps For Science http://www.appsforscience.com
Developer Events - Hack For Sciencehttp://www.hackforscience.com
The End