
Watson Services - harscoat
http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/services-catalog.html
======
pesenti
This is the first batch of APIs that my team - the Watson Developer Cloud team
- is exposing through IBM BlueMix for everybody to try and use. We have many
more APIs in the pipeline but we decided to come out quickly with a small set
to start with. We are trying get some early feedback from the developer
community on what they find useful, what they'd like to see, how the APIs are
designed, the quality of the documentation and example code, etc. Comments and
questions are very welcome!

~~~
mattmanser
It's great that you've released the functionality. And you asked, so I hope I
don't come across too harsh. I'm looking at your examples, here for example:

[http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercl...](http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/glimpseapi/index.html)

To make a simple call with the Java example, you've managed to write 372 lines
of code.

Three hundred and seventy two lines.

That's some bad code.

There's nothing I can point at and go, that, that's what's wrong, the whole
thing just has a lot of code smells. The 'zZz's (what is that DIY escaping all
about?). The multiple http calls that should have been abstracted into one
function, but aren't. The over commenting. The api structure requiring you to
do 3+ calls. The exponential call back time (this is not a good idea, have fun
with weird bugs). That you've made your own json objects. That you've used PUT
for a pretty tenuous reason. That you've put all the urls in some config file
or something, so the code isn't particularly clear at what it's doing.

The ruby & javascript are more terse because those languages are, but they
aren't that much better. It's often silly little things, like this:

    
    
        '/status?' + querystring.stringify({'jobid':jobid});
    

Could have been written simply as this:

    
    
        '/status?jobid=' + jobid;
    

There really is no good reason to use 'querystring.stringify' in that
instance, it's not user input. The code's simply over-complicated.

The code reads like a sysadmin/amateur/uni professor's code, a scripter rather
than a professional programmer's. It's like you don't have a senior dev on the
team to cast an eye over it and get rid of the excesses.

The APIs themselves are not bad, as I mentioned there's the slightly tenuous
PUT stuff, the only other annoyance I could see is that you'd have to ping it
all the time to see if it's ready. I appreciate why, and you've made the right
call in the callback vs ping, simply because so often when hacking setting up
a callback would be hell.

It's better than a lot, like google or paypal, so it's not all bad.

NB: But now I just found this exploring github:

[https://github.com/Watson-Explorer/wex-wdc-integration-
sampl...](https://github.com/Watson-Explorer/wex-wdc-integration-
samples/blob/master/wex-ce/BlueMix/concept_expansion_service.rb)

Which at first glance is better code than the examples on the site? Bit odd.

~~~
jsstylos
For the jobid example, the stringify is necessary because the jobid returned
by the server includes a # symbol. Try the code you suggested and you get the
result: "Error: ContextExpansion Error: jobid is in incorrect format."

~~~
colanderman
This is a perfect example of why I don't like to take silly shortcuts based on
tenuous assumptions like the GP suggests.

Assumptions, more often than not, (1) change, (2) are understood differently
by others, and/or (3) (as in this case) are flat-out wrong. Code that takes
"advantage" of such silly assumptions usually (1) are poor examples to coders
new to the project, (2) complicate reviewing the code for correctness, and (3)
waste brain-time figuring out when they can (and can't) be applied.

Just escape everything that should be, whether you think you know what it
is/where it came from or not.

------
philbarr
It seems that to get a true "wow" moment out of this, you would need to use
the services in combination, but there is no demo of this. Each demo looks
like nothing more than a database search of the training data - no super
amazing algorithms supplied.

Perhaps IBM could provide an example "wow" moment to inspire us?

~~~
pesenti
The demos are really made to demonstrate some basic input/output usage.
Combination apps are indeed where we think developers will find the most
value. We plan to have an app gallery to show that soon. Thanks for the
suggestion.

~~~
philbarr
Could you describe a potential "wow" app, and how you would use the
combination of services to achieve it? To get me salivating for more?

~~~
toomuchtodo
Was expecting people to talk about apps centered around delivering healthcare
advice/information cheaper/more readily to people, turns out we're just going
to keep finding ways to use tech to market ads to people.

~~~
jsstylos
The APIs can be used for all of the types of apps you mention -- there's
nothing limited to, or even targeted to advertising. Here's an idea for an
app: Imagine that you're a non-native English speaker, and you want to
communicate with English-speaking friends on Facebook or Twitter. Language
identification can detected your language, machine translation and translate
it to English, concept expansion can automatically generate potential
synonyms, message resonance can select the synonyms that best capture your
message, and user modeling can tell you what kind of emotions your message is
communicating. This technology can and will be used to bring people together,
but ultimately it comes down to what types of apps people make.

------
ar7hur
Most commenters here find these demos very underwhelming and I must agree with
them. Well known open source NLP packages like Stanford NLP or NLTK do much
better on these (very academic) tasks.

I think the problem is that Watson's demos have been trained for very specific
and narrow domains (like "cloud services" in the case of Resonance). What we
really want to know is how easy (or difficult) it is to train Watson for our
own domain.

If Watson has to make assumptions on my domain, then it will be really hard to
build something useful with it.

~~~
pesenti
I am not super familiar with Stanford NLP or NLTK, but I don't believe they
overlap with more than two or three (relationship extraction, and maybe
language id and some MT) of the services here. The value we want to bring is
by providing all these services together in one place and provide tools to do
fast domain adaptation. Right now to do adaptation you need to sign up to
become an ecosystem partner but we will expose that adaptation tooling to
everybody as well in the near future.

------
andrea_s
For all the hype that surrounds this platform, the live demos are truly
underwhelming...

~~~
skorgu
Agreed. For kicks I dumped a bunch of dmr biographical material (Wired, NYT,
his personal web page) into
[http://ibmlaser.mybluemix.net/siredemo.html](http://ibmlaser.mybluemix.net/siredemo.html)

Some "PERSONS" it found, everything between '' is [sic]:

'C' 'Cobol' 'B begat C.' '”' (yes, a single fancy closing quote) 'engineer' '’
initials' '’70s' '“Jobs’ genius'

Some of it is understandable given how annoying single-character identifiers
are to parse and others are roughly reasonable in context.

Even given some of those quirks I bet it would be useful if you had bajillions
of pages (cough ediscovery cough) to search through instead of a few general-
audience articles.

~~~
simias
Yeah it's pretty bad, even inputing a well written news article like this one:
[http://www.theguardian.com/fashion/2014/oct/08/return-of-
joh...](http://www.theguardian.com/fashion/2014/oct/08/return-of-john-
galliano-more-than-matter-of-style)

    
    
        ”              PERSON
        its            ORGANIZATION
        ’s Wear Daily  PERSON
        shoulder pad   DISEASE
    

The rest is mostly correct (although random punctuation seems included at
times) but it's nothing you couldn't get by word matching using a big
dictionary. It reminded me to get tested for shoulder pads though, so there's
that.

~~~
pesenti
We have a bug with quotes/punctuation that we are fixing now (that account for
1 & 3). "its" is not necessarily a mistake, it likely refers to the owner.
"shoulder pad" is a mistake due to the probabilistic nature of the algorithms
used.

------
serve_yay
I don't understand what the heck IBM is up to. They have ads with a bunch of
cool icons saying stuff about a smarter future world, but I don't know what to
make of any of it. Like, "Wouldn't it be great if the doctor came to you
_before_ you were sick?" Um, I guess so?

~~~
nyrulez
It just makes me think IBM will never get the consumer the way other companies
like Apple and Google do. There is nothing immediately actionable about how I
can start using this from the get go. What the hell is bluemix ? Is that an
internal thing I am supposed to know about ? How can I start being productive
in 5 minutes vs. trying to solve a puzzle by piecing different pieces together
? It all seems very enterprise-y and indirect - an immediate turn off in this
day and age of immediate usability and short attention spans.

------
bolaft
How do these services work, compsci-wise? Could someone link a few IBM
publications explaining how the Question & Answer API works? That would be
very helpful. The documentation pages explain nothing.

~~~
jlas
Some of these services definitely draw from the area of Natural Language
Processing [1] and Semantic Analysis [2]

[1]
[http://en.wikipedia.org/wiki/Natural_language_processing](http://en.wikipedia.org/wiki/Natural_language_processing)

[2]
[http://en.wikipedia.org/wiki/Semantic_analysis_(machine_lear...](http://en.wikipedia.org/wiki/Semantic_analysis_\(machine_learning\))

~~~
bolaft
Thanks, however I was already aware of that, I was looking for something more
specific.

------
juretriglav
The language detection failed to work (it identified it as tr-TR) with these
words for Slovene: jabolko hruška sliva marelica drevo dež mleko malo preveč
majhno veliko

This works perfectly on the first result on Google for "language
identification", however:
[https://open.xerox.com/Services/LanguageIdentifier](https://open.xerox.com/Services/LanguageIdentifier)

Edit: I now see Slovene is not supported, apologies are in order.

~~~
ArjenM
Noticed it does not find Frisian, but then again neither does Google. It just
gives random guesses every time.

~~~
pesenti
As mentioned in other comments, this language is not yet supported. But it
would be better to return "unknown" rather than guessing, so we'll look into
that.

------
mattmcknight
One challenge with trying to expose these kinds of services via an API is that
much of their utility emerges from a building a model around data of interest.
In order to efficiently build a customized capability, one would have to
upload potentially large amounts of data to an engine for processing. As a
general information service, you ask a question in text, and get an answer in
text.

------
Jonovono
I 'made' this to analyze you HN posts:
[http://hn.mybluemix.net/](http://hn.mybluemix.net/)

~~~
tripzilch
Okay, wow that's pretty impressive, actually.

How did you make this exactly?

The analysis (for myself) seems quite accurate, although I have to try a few
different queries (for which I don't have time right now) to determine to what
extent it's suffering from the "horoscope effect" (some classifications are
quite general and nice to read about oneself, making it more acceptable as
accurate).

~~~
Jonovono
Hey! So I just used the Watson Node sample project. It had everything ready to
go :)

------
logicallee
This is interesting!

I copied their own text from the top of the page at [http://watson-mr-
demo.mybluemix.net/](http://watson-mr-demo.mybluemix.net/) and selected "Cloud
Computing." Then I changed all the words that were grey until they were green.

Original:

The Watson Message Resonance service analyzes the popularity of a given word
within a specific community. By using this ranking system it is possible to
recommend more resonant words to use when crafting messages targeted at
specific audiences.

Changed:

The Watson Message Acceptance service analyzes the popularity of a given word
within a specific community. By using this ranking system it is possible to
recommend more effective words to use when A/B testing messages written for
specific audiences.

-

Which one resonates more with you? :)

~~~
dzdt
Here's a version modified for "big data and analytics" :-)

The Watson Buzzword Resonance service gives the usage frequency of a test word
within a target community. By using this ranking system it is possible to
recommend more fashionable words to use when making messages targeted at
different customers.

------
Tad_Ghostly
I'm heading up a project that will add a layer of text-based help to online
courses (thats the short description...). I would love to explore the Watson
APIs more. Aside from diving into the samples here, do you have other
suggestions for learning more?

~~~
aameek
Thanks for the interest Tad. The docs/samples/demos collateral should be a
good starting point. If you would like to have a deeper engagement, please
consider joining the Watson ecosystem program:
[http://www.ibm.com/smarterplanet/us/en/ibmwatson/ecosystem.h...](http://www.ibm.com/smarterplanet/us/en/ibmwatson/ecosystem.html)

------
tempodox
There seems to be a lot of context missing. I can't for the life of me come up
with a simple example that demonstrates these services' value to me.

~~~
aameek
See my response to philbarr above about a retail partner. Here is another
example related to recruitment. Often we have a need to hire that we identify
with another model employee (e.g. wouldnt it be great, if I had a dev like
John from TeamX). With the User Modeling service, we had a Hackathon team
create a beautiful app where you can ask questions like these and comparing
the characteristics of candidates to John, it can find similar matches (of
course done in the context of matching skills)

------
beenpoor
In the 30 second attention I was going to give, 20 seconds was spent on
registering. And then 10s to figure our if there is any demo or any sort.

I couldn't find anything easy to find. I give up. Website is too slow too. And
everything shows classic big corp red tapism.

~~~
pesenti
You don't have to register to see the docs and the demos. Every demo is 2
clicks away from the front page. Registering is free but necessary, as for
every other Paas to create your own app. Tell us where is the "big corp red
tape" and we'll take it out. We are trying to make the experience as
streamlined as possible.

~~~
beenpoor
First off, sorry I was rude yesterday. I tried three different demos and all
of them were asking for either FB login or something and got annoyed I
couldn't try it.

Few questions. I am interested in question and answer service. Is there any
related demo ? Specifically, a pre-trained knowledge base. Even better if you
can allow anyone to ingest a knowledge into your cloud, train and have it
running.

~~~
aameek
Likely something else going on with your browser.. Demos have no logins
whatsoever...

------
2close4comfort
So I can feed Watson public info about someone and it can make
recommendations...for travel like the example, maybe preference of beverage,
or custom dictionary words/terms that would be associated with this relevant
information. Like a custom dictionary customized to an individual with a
little alpha/numeric replacement and some special chars thrown in...wait I
have to go ask Watson a couple of questions.

------
azakai
Very impressed. I tried out the machine translation live demo, and based on a
few samples I gave it, it appears to beat everything else I am aware of.

~~~
pesenti
Thanks! The Watson research team has a long tradition with MT (this is the
team that actually invented statistical MT
[http://en.wikipedia.org/wiki/Statistical_machine_translation](http://en.wikipedia.org/wiki/Statistical_machine_translation))
and always achieves top rankings in many of the public competitions. But we
had never exposed MT to a broad market. So bear with us while we iron the
wrinkles.

------
ericHosick
I tried the Language Identification service
([http://ibmlaser.mybluemix.net/liddemo.html](http://ibmlaser.mybluemix.net/liddemo.html)),
put in Vietnamese from wikipedia and "en-US" returned.

I did sign up. Note that in incognito mode, I have access to that link. I am
guessing others do too.

------
sciencerobot
Here is a link to the docs that should get you up and running with an example
application pretty quickly.

[http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercl...](http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/qaapi/index.html)

------
ashhath
For anyone that would like to leave feedback about what we can do to improve
the API's feel free to leave your input here. Have at it!:

[https://trello.com/b/dXizfv9z/watson-developer-
cloud](https://trello.com/b/dXizfv9z/watson-developer-cloud)

------
jcutrell
Looks like there's some Ruby behind the scenes.

``` Error: undefined method `each' for nil:NilClass ```

~~~
jeisen
More details? Which service? What were you doing with it?

~~~
catshirt
happened to me on this page: [http://watson-ce-
demo.mybluemix.net/](http://watson-ce-demo.mybluemix.net/)

i changed Corpus to "Social Media" and hit "Submit".

i refreshed the page and did the same thing and it worked.

~~~
jcutrell
Yep - that's where i got it too.

------
thewarrior
I tried the Relation Ship demo on the first paragraph of an HN frontpage story
:

[https://imgur.com/7XYnttk](https://imgur.com/7XYnttk)

It obviously has some way to go .

~~~
pesenti
Sorry we have a bug with character normalization which messes up punctuation
parsing. That accounts for most of the mistakes here ("its" is not a mistake,
it refers to the owner). Here is the fixed output:

Adobe ORGANIZATION

Digital Editions ORGANIZATION

others PEOPLE

readers PEOPLE

mother- PERSON

ship VEHICLE

Two CARDINAL

reports EVENT_COMMUNICATION

claim EVENT_COMMUNICATION

its ORGANIZATION

your PERSON

------
slashnull
Can I... Can I actually date Watson? Is that in the short-term plan? Anybody
knows?

~~~
aameek
Yes, it is already available. You just have to close your eyes and try very
very hard... Make sure you are all positive in your heart, else it fails (we
are working to remove that limitation soon)

------
anigbrowl
Interesting. I can see a market for maybe five of these 'Watson' things.

