apps for science - elsevier developer network workshop 201102

24
Apps for Science Elsevier | Developer Network

Upload: remko-caprio

Post on 12-May-2015

2.411 views

Category:

Technology


4 download

DESCRIPTION

This presentation is an introduction into programming OpenSocial Gadgets for Science. 1. overview of apps 2. social networks 3. opensocial 4. SciVerse Platform 5. SciVerse APIs 6. Coding OpenSocial Gadgets for SciVerse 7. Resources

TRANSCRIPT

Page 1: Apps for Science - Elsevier Developer Network Workshop 201102

Apps for ScienceElsevier | Developer Network

Page 2: Apps for Science - Elsevier Developer Network Workshop 201102

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

Page 3: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for Science Web 2.0 – iGoogle is Apps

3

Page 4: Apps for Science - Elsevier Developer Network Workshop 201102

4

1 billion downloads350,000 Apps

WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 - Mobile Apps is Apps

Page 5: Apps for Science - Elsevier Developer Network Workshop 201102

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%

Page 6: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceWeb 2.0 - Facebook is Apps

6

Facebook Apps500 million users

Page 7: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceSciVerse is OpenSocial - Facebook versus OpenSocial

7

Page 8: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceSciVerse is OpenSocial

Facebook versus OpenSocial 500 million versus 900 million users

8

Page 9: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceSciVerse is Innovation in STM Publishing

9

Gutenberg Printing Press 1440Lodewijk Elsevir 1580

Page 10: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceWorld Wide Web

10

Tim Berners-Lee - first Web Server (EVER) 1990

Page 11: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceScienceDirect Online – more than 10 million scientific articles

11

Page 12: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for ScienceScopus online – 40 million abstracts

12

Page 13: Apps for Science - Elsevier Developer Network Workshop 201102

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>

Page 14: Apps for Science - Elsevier Developer Network Workshop 201102

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

Page 15: Apps for Science - Elsevier Developer Network Workshop 201102

WorkShop – OpenSocial Gadgets for Science

15

SciVerse

Page 16: Apps for Science - Elsevier Developer Network Workshop 201102

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

Page 17: Apps for Science - Elsevier Developer Network Workshop 201102

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)

Page 18: Apps for Science - Elsevier Developer Network Workshop 201102

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>

Page 19: Apps for Science - Elsevier Developer Network Workshop 201102

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);

Page 20: Apps for Science - Elsevier Developer Network Workshop 201102

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>

Page 21: Apps for Science - Elsevier Developer Network Workshop 201102

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>

Page 22: Apps for Science - Elsevier Developer Network Workshop 201102

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)

Page 23: Apps for Science - Elsevier Developer Network Workshop 201102

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

Page 24: Apps for Science - Elsevier Developer Network Workshop 201102

The End