We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Post your ideas
Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,
Post an idea
Upvote ideas that matter most to you
Get feedback from the IBM team to refine your idea
Help IBM prioritize your ideas and requests
The IBM team may need your help to refine the ideas so they may ask for more information or feedback. The product management team will then decide if they can begin working on your idea. If they can start during the next development cycle, they will put the idea on the priority list. Each team at IBM works on a different schedule, where some ideas can be implemented right away, others may be placed on a different schedule.
Receive notification on the decision
Some ideas can be implemented at IBM, while others may not fit within the development plans for the product. In either case, the team will let you know as soon as possible. In some cases, we may be able to find alternatives for ideas which cannot be implemented in a reasonable time.
AI queries: SELECT * FROM table1 WHERE classify( col1) = 'cat'
Collaborate with the Db2 team (and Cloudant?) to support Watson AI (WML, Visual Recognition, NLC) natively in the database.
(Just one possible way it could work...)
There is already a thing called user-defined functions (UDF). Why not add: AI user-defined function (AIUDF).
Scalar functions would be the easiest to start with..
Imagine I have a Db2 table, called 'tweet_table', with a column containing tweet text, called 'tweet_txt'.
Imagine I have a WML model already deployed to analyze the sentiment of tweet text. So I could create an AIUDF that uses that model and returns an integer: 0 (for negative sentiment) or 1 (for positive sentiment.)
To analyze the sentiment of the tweets in my table, I could do this:
SELECT tweet_id, sentiment( tweet_txt ), tweet_txt FROM tweet_table;
Imagine I have a Db2 table, called 'animals_table', with a BLOB column, called 'images', that contains images of animals.
Imagine I have a WML model already deployed to classify an image by the type of animal in the image. So I could create an AIUDF that uses that model and returns a string: the name of the top class (eg. 'cat', 'bird', or 'dog'.)
To return all images that contain cats, I could do this:
SELECT image_id, image FROM animals_table WHERE classify_animal( image ) = 'cat';
 This idea could use the new AI OpenScale object, AI functions (or whatever they will be called), as well as models.
Important technical details
Here's the important thing... it could be very slow to run and get costly (WML API calls) if I run these AI queries over and over.
So the fancy part would be that Db2 would do things like:
Be slick about authentication
Handle any asynchronous behaviour
Elegantly handle throttling, and API call limits
Create shadow tables (or hidden columns) storing previous results to save API calls
If previous results are stored, automatically update them if the data changes or the model is redeployed
Performance: process all the data in the table when the AIUDF is registered and store results, or wait until queries are run only stored results then
Allow users to configure how these issues are handled
Today, users can create extra tables or columns by hand, run the WML API calls, and save the results. When the models are updated, you could use scripts to go back and update saved results. When the data in a row changes, you can have triggers that call the WML API again. Etc. But that's a pain.
Sooner or later, IBM has to be able to say "Db2 has built-in support for AI queries" or "Db2 natively supports AI".
There are a lot of Db2 users out there with a lot of data in their databases.. If some small percentage of those users decided to analyze some of that data using Watson, that's a lot of people signing up for the Watson services and that a lot of API calls processing all that data. $$
What is described above is just a beginning. We should also make built-in models (eg. visual recognition and NLC models) available for AI queries in Db2 as well.
Terminology (and competitive evaluation)
*Some people think an "AI database" is one that you can query using natural language instead of just SQL. But that's not what I'm talking about. I'm talking about this: https://mldb.ai/
Do not place IBM confidential, company confidential, or personal information into any field.