Key Information

Register
Submit
The challenge is finished.

Challenge Overview

Hewlett Packard has developed a set of JSON-based REST API’s which enable “Big Data”-type processing capabilities allowing developers to process information embedded in unstructured text and images in previously inaccessible formats.  This platform is called IDOL OnDemand and at this point is in the Early Access release phase, open for all Innovators to use.   

http://www.idolondemand.com

New HP IDOL OnDemand challenges launched weekly! Check http://idolondemand.topcoder.com for a complete list of HP IDOL OnDemand topcoder challenges.

Requirements

These are the requirements:

  1. develop an Google Sheets Add-on (using Google Apps Script and the HP IDOL OnDemand API), by improving the Google Sheets Add-on provided in the forums

  2. the Add-on should use the HP IDOL OnDemand API to perform analysis on the text from the Google Sheets document

    1. a sample Excel document will be provided in the forums (hotel-reviews.xlsx)

    2. different Excel documents may be provided by the submitters, to show that their submission is working for the new requirements

  3. the add-on is added to the Add-ons menu from the Google Sheets web application, using the name "IDOL OnDemand"

  4. the add-on should have 5 menu items: "Sentiment Analysis", "Entity Extraction", "Find Similar", "Summarization" and "IDOL OnDemand API Key", in this order

  5. the "IDOL OnDemand API Key" menu item opens a dialog to input the IDOL OnDemand API Key:

    1. keep the existing functionality

    2. should prevent a blank API key from being saved.

    3. the "Get API Key" link will open a Help dialog that presents the steps required to obtain the API Key. Modify the Help page contentwith these aditions:

      1. include IDOL OnDemand logo - make it a link that connects to www.idolondemand.com

      2. add a link to Terms of Service https://www.idolondemand.com/docs/eula.html

      3. see the dialog in the Excel Add-in provided in the forums as an example

    4. If the wrong API key is entered, no error message is shown during sentiment analysis. User doesn't know what's going on then. Should fix this aspect.

  6. for all IDOL OnDemand API calls, add support to handle Rate Limiting, Quotas, and Maximums (Data Expiry is not required):

    1. for each response, check at first if it contain an "error" field, and present custom message dialogs for the error codes from the page above: 2010, 503 and the error code for exceeding Text input to all APIs (1MB)

    2. direct users with quota errors to review their account information on the IDOL OnDemand site.

  7. "Sentiment Analysis" menu item changes:

    1. it opens a Custom Side Bar at the right side in order to analyze the text

      1. Change "DELETE ALL" to "REMOVE" and make it remove the selected task. It should show a message that no task is selected, if no task is selected

      2. If only one cell is selected and "Get Range" is clicked, you should format the range like "C2:C2", not leave it as "C2" which produces no results.

      3. In the list show the language as "English", not "eng"

    2. the Tasks can be executed and a new Worksheet is created

      1. The functionality seems to be fine

  8. "Entity Extraction" menu item will make use of the Entity Extraction API

    1. provide a Custom Side Bar similar to the one for Sentiment Analysis, that allows the user to create tasks and to view them in a list.

    2. provide the Name and Range functionality

    3. allow the user to select the entity type (using a drop-down)

      1. show the long explicit names to the user, as seen here: "English Notable People" for "people_eng", ...

    4. provide a checkbox for "Show Alternatives" option (show_alternatives)

    5. ���executing the selected task should behave similar to Sentiment Analysis functionality

    6. in the created worksheet, present the normalized text, the original text and score

  9. "Find Similar" menu item will make use of the Find Similar API 

    1. provide a Custom Side Bar similar to the one for Sentiment Analysis, that allows the user to create tasks and to view them in a list.

    2. provide the Name and Range functionality

    3. allow the user to select the public data set to query (using a drop-down) ("indexes")

    4. allow the user to set the number of links to return ("absolute_max_results" - The absolute maximum number of results to return for this query. Default value: 6)

    5. do not return the content fields, as we need only the links (see the "print" property)

    6. in the created worksheet, present the resulted links for each text in range

  10. "Summarization" menu item will make use of the Query Text Index

    1. provide a Custom Side Bar similar to the one for Sentiment Analysis, that allows the user to create tasks and to view them in a list.

    2. provide the Name and Range functionality

    3. allow the user to select the type of summary: context, concept and quick

    4. allow the user to set the number of summaries to return ("absolute_max_results" - The absolute maximum number of results to return for this query. Default value: 6)

    5. in the created worksheet, present the resulted summaries for each text in range

  11. A few implementation requirements for existing and new code:

    1. move all CSS code into a dedicated CSS file rather than having so much inline styling in the HTML files. The color map definitions from Code.gs should also be moved to a CSS file

    2. change ApikeyDialog to ApiKeyDialog.

    3. var userProperties = PropertiesService.getUserProperties(); is being called multiple times. Use this once in an init function and then use the var everywhere. Same for var apiKey.

    4. Create a baseURL and re-use it everywhere for the snippets below

      1. return 'https://api.idolondemand.com/1/api/sync/identifylanguage/v1' + '?apikey=' + apiKey + '&text=' + encodeURIComponent(text);

      2. return 'https://api.idolondemand.com/1/api/sync/analyzesentiment/v1' + '?apikey=' + apiKey + '&language=' + language + '&text=' + encodeURIComponent(text);

    5. Please remove all commented code fragments such as this one before submitting

      1. //alert(google.script.run.getApiKey());

    6. Please put comments on lines such as this where you are using magic numbers

      1. taskSheet.getRange(rowNumber, 1, 1, 3).setBackground(backgroundColor);

    7. There is an extra space in the label which is not needed

      1. <a class="padL padT" href="#" onclick="google.script.run.showGetApiKeyDialog()">Get API Key </a>

Getting Started with HP IDOL OnDemand

Before you can use the API’s you’ll need to sign up for an IDOL OnDemand developer account:

http://www.idolondemand.com/signup.html

Please indicate that you heard about IDOL OnDemand through [topcoder] in the “How did you hear about IDOL OnDemand?” field:

Once your account has been verified you’ll be assigned a developer account and API Key that will allow you to make API calls.   Complete information about available IDOL OnDemand API’s can be found here: 

https://www.idolondemand.com/developer/apis

You’ll need to register for a developer account with HP in order to get access to additional Try functionality in the API console.  Use of the APIs is free and restricted to non-commercial use at this time. Commercial use and pricing will be announced in the near future.

Before you compete in an IDOL-related challenge on [topcoder] please create a topcoder-specific key in your IDOL OnDemand Account.  You can do this by Clicking on Account->API Keys from the developer home page.

Simply generate a new key and rename it to “topcoder” as shown above.   This should be the key that you use in [topcoder] challenge completion.  This will also give you visibility to Preview API’s which may not yet be in public release. 

You should be all set!



Final Submission Guidelines

  1. A video which describes the Google Sheets Add-on (a link to your video: Screenshare, Jing, or Youtube.com). Describe these aspects

    1. the source code

    2. the usage.

  2. A document which describes how to deploy your code.

  3. The source code as a development project

  4. Submit your code and the deployment guide files as a ZIP package.

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30045898