Tag Archives: IBM Cloud

Creating Cognitive Apps Powered By IBM Watson

There has been a lot of buzz around IBM Watson ever since, it defeated Brad Rutter and Ken Jennings in the Jeopardy! Challenge of February 2011. Recently again there has been much activity surrounding IBM Watson, when IBM did a press release stating that its forming a new Watson group to meet growing demand of cognitive innovations. In addition to launching the IBM Watson Group, IBM also announced three new services based on Watson’s cognitive intelligence, IBM Watson Discovery Advisor, IBM Watson Analytics & IBM Watson Explorer.

In this blog post, I want to share how one can create cognitive applications using IBM Watson. To start with, we need to first understand what is cognitive computing. Originally referred to as Artificial Intelligence, the term ‘Cognitive computing’ is not just a newer term but also an re-engineering to make the computer systems model like a human brain. The key difference is that artifical intelligent system lack ability to learn from its experience. I like what I read somewhere tha, Cognitive computing aims to reverse-Engineer the mind! Cognitive computing systems learn and interact naturally with people to extend what either humans or machine could do on their own. These are machines of tomorrow and will completely change the way people interact with computing systems. IBM Watson represents a first step into cognitive systems. Following three form the core to IBM Watson –
1. Natural language processing by helping to understand the complexities of unstructured data
2. Hypothesis generation and evaluation by applying advanced analytics to weigh and evaluate a panel of responses based on only relevant evidence
3. Dynamic learning by helping to improve learning based on outcomes to get smarter with each iteration and interaction

This redguide will help you understand insides of IBM Watson and how it works.

Companies can embed Watson’s cognitive capabilities in their application without the need for building deep natural language, machine learning and ranking algorithms or other core technology skills. They could accomplish this by being able to embed the Watson platform capabilities as a service, through the use of API and tools on the Watson Developer Cloud.

Application Programming Interface (API) : The Watson Question and Answer API (QAAPI) is a Representational State Transfer (REST) service interface that allows applications to interact with Watson. Using this API, one can pose questions to Watson, retrieve responses, and submit feedback on those responses. In addition to simple question and responses, Watson can provide transparency into how it reached its conclusions through the REST services. There are other functions like ingesting content in the Watson platform that will also be exposed as tools and APIs and can be accessed from within an application.

Watson supports two ways of using the QAAPI – Asynchronous and synchronous mode. In the asynchronous mode, the question is posted to Watson and the response returns a link to retrieve the answer when it is ready. In the synchronous mode, a POST operation sends the question to Watson. The answer is received synchronously. The output from Watson contains not just the response, but it also contains the confidence score, the evidence and other metadata about the response. If there is an error condition with the pipeline, additional information is returned in the “errorNotifications” and is helpful in working with IBM Support.

The key steps involved in using QAAPI are:
1. Configure parameters, including authentication : First the user configures various question parameters on the question, including the Basic Authentication, Content type, Accept type, and for a request in a synchronousmode, the sync-timeout, etc. The QAAPI uses Basic Authentication over SSL to provide security. The QAAPI supports JSON as the content-type and accept type. XML is also supported.

2. Post question : The question needs to be in a JSON format. The output can be customized by passing in the number of responses to return with the question itself, along with additional insights into how Watson handled the question.

3. Receive response : The output from Watson contains not just the response, but it also contains the confidence score, the evidence and other metadata about the response. Some of this information provides insight into how the question was interpreted by Watson. If there is an error condition with the pipeline, additional information is returned in the “errorNotifications” and is helpful in working with IBM Support.

4. Process response : The response can be shown to a user asking the question as-is, or it could passed on to another component for additional processing before it is displayed to a user. It could be used to visually represent the response(s), create a way to ask additional simulated questions or process the answer to obtain additional insights on the interactions. After Watson provides the response, the application developer is responsible to integrate that response seamlessly into their application.

In this manner by creating applications to embed Watson’s cognitive skills, Watson can enable businesses and consumers to have a dynamic exchange, leading to insights and new, synergistic ways of thinking. This can enable companies to
• Gain insights from a hitherto largely untapped sources of unstructured content
• Converse with clients or users in a way that humans would – using natural language
• Enhance the knowledge in the company’s domain with a system that learns over time.

Reference : Whitepaper: Creating Cognitive Apps Powered By IBM Watson – Getting Started with the API

Eclipse Orion: Code.Everywhere= true;

This post is inspired by this IBM DeveloperWorks article on Eclipse Orion.

” Develop your software where ever you go. It’ll be there, in the cloud, right where you left it. Just login from a web browser on desktop, laptop, tablet, at an airport, on a bus or even in your office.” Thats what the Orion Website says!  And I say its just amazing! The futuristic development tool is here, now!

Orion has already powered JazzHub, a place where you can collaborate with others to seamlessly plan, track, and develop software in the cloud.

Lets learn some more about Orion. Orion’s objective is to create a browser-based open tool integration platform which is entirely focused on developing for the web, in the web. Tools are written in JavaScript and run in the browser. The technologies which run behind Orion are  RESTful HTTP, HTML5, JavaScript, CSS, JSON, Atom, OpenID, OAuth, Persona, etc. It uses  pure HTML5, CSS, and JavaScript on the client, and Java with Equinox, Jetty, and JGit on the server.  The key tasks done through Orion are coding, navigating, searching and interacting with SCM. Key fundamental is performance over power; that means the pages load at a very fast pace than giving too many options or integrations but balance the features needed intuitively. You can try out the editor here -> https://orion.eclipse.org/examples/editor/demo.html

Code editor supports the basics (cut/copy/paste, undo/redo) and Eclipse desktop features (move up/down, copy up/down, go to line, find, incremental find). Most of these commands are accessible only through keyboard shortcuts, using the default key bindings in Eclipse desktop. To see a full list of available keyboard commands in the editor, press Alt+Shift+? (Ctrl+Shift+? on Mac OS). Outside of the editor, you can get the same help on any page by pressing Shift+?. The editing page shows a small tree of your files in the left-hand pane. Like its larger counterpart on the Navigator page, the miniature file tree lets you perform file management actions: create files and folders, rename, delete, etc. You can even drag & drop from files from your local computer into the file tree to upload them. The editor will syntax highlight your code when working with JavaScript (a *.js file). Orion provides an outline of your JS functions: click the View Options (View options) menu to switch between the file tree and the outline. Editor implements a plug-in that runs JSLint on JavaScript files in order to produce the outline and problem markers. JSLint is JavaScript Code Quality Tool. The editor will also match brackets when you click next to a bracket, perform auto indention, and provide source-code oriented key bindings for things like toggling comments and adding/removing block comments. Syntax highlighting of CSS files is also supported. Orion uses CSSLint to validate and check for problems in CSS files. A simple HTML outline is provided, based on DOM ids. Syntax highlighting is also available for HTML files. Java syntax highlighting is also supported. Pluggable editor actions have been  implemented, which allow third-party developers to extend the behavior of the Orion editor on the fly.

The Eclipse Orion Getting started guide has all the details on the editor, searching, navigation and working with SCM.

With the new Orion 4.0 M2, support has been added for Embedded markdown renderer, Bracket completion, Smart indent, Block comment completion, Option to show whitespace characters, Trim trailing whitespace on save, Customized editor rulers, Customize local editor settings dropdown, Toggle regular expression search in search bar, Search support for replacing with whitespace characters, Content assist more tolerant of syntax errors, Navigate content assist with page up/down, Auto-save now transfers only file deltas. The Orion editor now tolerates running on Internet Explorer 8 and JSLint can be turned off. Support has been added to enable in-editor Git blame on a file by adding Git Blame plugin. Git revert command added and the Orion Git integration has been upgraded to use a new major version of JGit, version 3.0.

The plan for the Orion 5.0 Release is to be in February, 2014 and coincide with EclipseCon North America.  The 5.0 plan will have 4 main focus areas including “Features”, “Infrastructure”, “Core” and “Community”. Some of the ideas within the 5.0 Project Plan would ideally involve some community efforts to implement and those will be called out.

Try it out @ Orion Hub!