Can IBM Watson Discovery be replaced with IBM Watson Explorer for natural language analysis - ibm-cloud

A POC in our project uses IBM Watson Discovery services hosted in cloud for natural language analysis but our company wants an on premise solution for natural language analysis instead of cloud based one.
Is it possible to replace IBM Watson discovery API completely with IBM Watson Explorer.
I did some research and found that Explorer does not have Node JS APIs.
Also IBM Watson Explorer Rest API can be used for simpler use cases like searching.
Please help me in this regard as my knowledge on these two tools is limited.

To answer your question in short, yes it can be done.
Watson Explorer does have an API interface and yes it can be integrated with Node JS as well, it does not have a native npm package...I personally have implemented a very complex solution for a very reputed an automotive client using WEX as the Backend and Data Ingestion engine and Node JS on top, acting as the orchestrator and the UI.
You may want to see this post: https://developer.ibm.com/answers/questions/259089/rest-apis-for-wex-search/
> On Linux: {hostname}/vivisimo/cgi-bin/velocity?v.app=api-run
> Windows : {Hostname }/vivisimo/cgi-bin/velocity.exe?v.app=api-run
The api-runner have all the api's listed and one can also test them against the search collections (search collections are the equivalent to a table where the data is ingested and there are a lot of custom configurations which can be applied to make use of, for advance use).
So for using WEX with Node JS, you can make use of the api-runner url's and directly query WEX Engine.
This is how a sample GET query url may look like:
var link1 = 'http://' + WEX_IP + ':9080/vivisimo/cgi-bin/velocity?v.function=query-search&v.username='+username+'&v.password='+password+'&v.app=api-rest&v.indent=true&sources=' + WEX_col_name + '&start=0&num=15&v.app=api-rest&query=sortby:sort_severity%20AND%20sortby:Create_Date_desc%20AND%20Create_Date:>=03/30/2018%20AND%20case_flag:1%20AND%20NOT%20case_flag:0'
Hope this helps.
PS: The WEX API's return data in xml format, so if one is comfortable in xml parsing, one can use that or as in my case, I used xml2json package on node to covert xml to json object and then parse that to display the required fields on the UI.

Related

Watson IoT: "Extensions" entry is not available in left menu

I've been following the Gather, visualize, analyze and detect anomalies in IoT data tutorial and, although I was able to go through it flawlessly, I'm stuck in the second step of the "Create a data connector to store the historical data" section. In my Watson IoT left menu, there is no entry called "Extensions", my last option is the "Configuration" one. As far as I know, I have re-checked all the steps twice and I have tried to configure different regions (I'm located in Spain) for both Watson IoT and cloudant services (all within the "Lite" program), but I can't, for the life of me, forward the data received in Watson IoT to Cloudant.
Is there anything that has changed in the Watson IoT platform since the tutorial was written? Do I need to activate anything in my account that allows me to see the "Extensions" option?
Thank you for your support and if you need more information about my setup, don't hesitate to ask.
Best regards,
Aitor
As mentioned in the Solution tutorial,
Setting up a new connection is a four-step process:
Create a service binding that provides Watson IoT Platform with the necessary information to connect to the Cloudant service.
Create a connector instance for the service binding.
Configure one or more destinations on the connector.
Set up one or more forwarding rules for each destination.
You can refer to the IBM Watson IoT Platform - Historical Data Storage Extension APIs
swagger UI as mentioned in the tutorial.
You can also access the interactive API docs directly from the Watson IoT Platform service dashboard by selecting the menu bar help icon in the upper right corner of the window and then clicking API > historian connector > View APIs. To store the historical data to Cloudant, you will be passing the IBM Cloudant credentials to create a Watson IoT Platform service binding.
You can find the extensions deprecation information in the post here

IBM DataConnect refine operations

The supported list of transformations in IBM's ETL service DataConnect in Bluemix Cloud are these ones here: https://console.ng.bluemix.net/docs/services/dataworks1/using_operations.html#concept_h4k_5tf_xw
I have looked and looked but with no luck, what if I want to transform some of my data with an operation that is not included here? For example run custom code in a column and get some specific output?
Data Connect does not currently support refine operations outside of those provided with the service. We are adding new features and functionality weekly, but if you have a specific operation in mind, please let us know.
I will find out for you if we have the ability to execute custom code on our roadmap.
Regards,
Wesley - IBM Bluemix Data Connect Engineering
As Wes mentions above in the short term we will continue to add new data preparation and transformation capabilities to the service. Currently there is no extensibility that allows you to code new transformations.
In the longer term we are considering allowing users to edit/extend pipelines using languages like Scala and Python. We don't have a defined date for these new capabilities.
Regards,
Hernando Borda
IBM Bluemix Data Connect Product Manager

Get Watson Conversation Workspaces

I am using Watson Conversation services on Bluemix. We have multiple Conversation workspaces within the service to enable better segmentation of the problem space.
I need to load information on the set of available workspaces within the Conversation service (e.g. name, workspace ID) to allow me to target the appropriate Conversation API endpoint. I've been trying to find a Watson or Bluemix API to allow me to retrieve the information directly but have not had any success.
Does anyone know if it is possible to retrieve this information programmatically and if there are any best practices for doing so?
We don't have an exposed endpoint for this capability at this point. It is something being discussed internally, however.
The API for managing Conversation workspaces is now available. It is possible to list workspaces, to create/update/delete a workspace and to download an entire workspace. The API is supported by the Watson SDKs.
Using the new API, I wrote a small tool for managing Conversation workspaces. The tool shows the API in action. The source is available on GitHub to demonstrate how the API can be of use.

Creating an IBM Watson search engine using Bluemix for internet & database research

I would like to use Bluemix to create an IBM Watson search engine (i.e. similar to a Google Search Engine interface) that will query either the internet (websites I specify) or online database and provide summaries of unstructured data, identify concepts, etc.
Are there any existing apps like this available or does anyone know how this can be setup with Bluemix or another platform?
You should take a look at the Alchemy API service on Bluemix.
It allows you to do things like extract entities and keywords.
Most of the APIs allow you to feed them html, text or web-based content. Stringing a bunch of these together and tagging content in a database such as Elasticsearch should allow you to achieve what you're after.
Hard to be too specific given the fairly broad nature of your question.

Beginner: Bluemix programming languages for analysis of IoT data

I am a h/w engineer interested in using Bluemix for an IOT application. Other than C, I do not know any programming language but I am willing to learn whatever necessary. My application is as follows:
My sensor nodes would upload data to an existing h/w server that has the capability to upload the data to an external SQL server. I want to analyze this data on the SQL server on a periodic basis and generate reports that I can publish to a mobile application or even a web-page to begin with.
Questions:
Is it possible to implement the "SQL server --> Data analysis --> Report generation + data visualization --> HTML(?) Publish" flow on Bluemix?
What modern/efficient languages can I learn in order to do this with the least effort?
Is there a standard implementation/example that I can use as reference for the flow described above?
This question actually has little to do with IoT--that just happens to be the source of the data--and focuses on how to process data for analysis, report generation, and publishing. You can do this mostly using services in Bluemix such that there's little if any code to write and so the programming language of the runtime may not matter.
First, to store the data, you could use SQL Database or dashDB. The former is "just" a database, whereas the latter includes R and R-Studio for data analysis. Second, for report generation, you can use Embeddable Reporting, which has Cognos (e.g. IBM Cognos Business Intelligence reports) built in.
The way Cloud Foundry in Bluemix works, you'll need to create a runtime with some language, then bind the service instances to it so you can use them. But you may not have any code to write, in which case the language doesn't matter. In case you do need to write some code, choose whichever language you think you can learn most easily. Java programmers prefer that, but it requires compiling; they may also prefer Go. You'll probably have an easier time with Node.js and PHP, which are popular interpreted languages.
A couple of resources for further info:
"Embed rich reports in your applications" shows how to use Embeddable Reporting with dashDB.
"Leverage IBM Cognos on IBM Bluemix using the Embeddable Reporting service" shows how to use Embeddable Reporting with SQL Database.
"Embed Reports and visualize Data in your Bluemix Applications" gives an overview of both approaches.
BTW, Bluemix also has a neat service called Internet of Things, which helps connect your Bluemix app to lots of things all over the Internet. Sounds like you already have this handled for this example, but as you continue to use Bluemix for IoT applications, you might want to look into this service too. The Internet of Things Foundation Starter helps you get started using Node.js, Cloudant, and Node-RED.