Along with our recent release of VDK 0.2.254, we’ve added a few new example apps to help developers get started with the VDK.
By starting with one of these examples, you can quickly build applications for prediction, classification, and recommendation with a JavaScript web application front end, and prediction models on the server. The examples use prediction models trained using Apache Spark or an external service such as AlchemyAPI (IBM Bluemix), or Metamind.io.
There is also an example app for various queries of a document database containing the Enron Email dataset. Some details on this dataset are here: https://www.cs.cmu.edu/~./enron/
The example applications have the same architecture.
The components are:
- JavaScript front end, using asynchronous messages to communicate with the server. Messaging and domain model management are provided by the VitalService-JS library.
- VertX application server, making use of the Vital-Vertx module.
- VitalPrime server using DataScripts to implement server-side functionality, such as generating predictions using a Prediction Model.
- Prediction Models to make predictions or recommendations. A Prediction Model can be trained based on a training set, or it could interface to an external prediction service. If trained, we often use Apache Spark with the Aspen library to create the trained prediction model.
- A Database such as DynamoDB, Allegrograph, MongoDB, or other to store application data.
Here is a quick overview of some of the examples.
We’ll post detailed instructions on each app in followup blog entries.
MetaMind Image Classification App:
Source Code:
https://github.com/vital-ai/vital-examples/tree/master/metamind-app
Demo Link:
https://demos.vital.ai/metamind-app/index.html
Screenshot:
This example uses a MetaMind ( https://www.metamind.io/ ) prediction model to classify an image.
AlchemyAPI/IBM Bluemix Document Classification App
Source Code:
https://github.com/vital-ai/vital-examples/tree/master/alchemyapi-app
Demo Link:
https://demos.vital.ai/alchemyapi-app/index.html
Screenshot:
This example app uses an AlchemyAPI (IBM Bluemix) prediction model to classify a document.
Movie Recommendation App
Source Code (Web Application):
https://github.com/vital-ai/vital-examples/tree/master/movie-recommendations-js-app
Source Code (Training Prediction Model):
https://github.com/vital-ai/vital-examples/tree/master/movie-recommendations
Demo Link:
https://demos.vital.ai/movie-recommendations-js-app/index.html
Screenshot:
This example uses a prediction model trained on the MovieLens data to recommend movies based on a user’s current movie ratings. The prediction model uses the Collaborative Filtering algorithm trained using an Apache Spark job. Each user has a user-id such as “1010” in the screenshot above.
Spark’s collaborative filtering implementation is described here:
http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html
The MovieLens data can be found here:
http://grouplens.org/datasets/movielens/
Enron Document Search App
Source Code:
https://github.com/vital-ai/vital-examples/tree/master/enron-js-app
Demo Link:
https://demos.vital.ai/enron-js-app/index.html
Screenshot:
This example demonstrates how to implement different queries against a database, such as a “select” query — find all documents with certain keywords, and a “graph” query — find documents that are linked to users.
Example Data Visualizations:
The Cytoscape graph visualization tool can be used to visualize the above sample data using the Vital AI Cytoscape plugin.
The Cytoscape plugin is available from:
https://github.com/vital-ai/vital-cytoscape
An example of visualizing the MovieLens data:
An example of visualizing the Wordnet Dataset, viewing the graph centered on “Red Wine”:
For generating and importing the Wordnet data, see sample code here:
Information about Wordnet is available here:
https://wordnet.princeton.edu/
Another example of the Wordnet data, with some additional visual styles added: