You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@predictionio.apache.org by do...@apache.org on 2017/01/24 18:32:13 UTC

[01/12] incubator-predictionio git commit: update UR in Gallery

Repository: incubator-predictionio
Updated Branches:
  refs/heads/develop 4fe5f251a -> 3c0c4c5e7


update UR in Gallery


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/6f0307c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/6f0307c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/6f0307c2

Branch: refs/heads/develop
Commit: 6f0307c23b7d138cb2f334c66e73ae6203ebe49e
Parents: 1d8f19b
Author: pferrel <pa...@occamsmachete.com>
Authored: Sun Dec 25 11:47:50 2016 -0800
Committer: pferrel <pa...@occamsmachete.com>
Committed: Sun Dec 25 11:47:50 2016 -0800

----------------------------------------------------------------------
 docs/manual/source/gallery/templates.yaml | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/6f0307c2/docs/manual/source/gallery/templates.yaml
----------------------------------------------------------------------
diff --git a/docs/manual/source/gallery/templates.yaml b/docs/manual/source/gallery/templates.yaml
index e411ac3..aa650bd 100644
--- a/docs/manual/source/gallery/templates.yaml
+++ b/docs/manual/source/gallery/templates.yaml
@@ -1,22 +1,22 @@
 - template:
-    name: Universal Recommender
-    repo: "https://github.com/PredictionIO/template-scala-parallel-universal-recommendation"
+    name: The Universal Recommender
+    repo: "https://github.com/actionml/universal-recommender"
     description: |-
       Use for:
 
-        * Personalized recommendations
-        * Similar items
-        * Popular Items
-        * Shopping cart recommendation
-        * Hybrid collaborative filtering and content based recommendations.
+        * Personalized recommendations&mdash;user-based
+        * Similar items&mdash;item-based
+        * Popular Items, User-defined ranking
+        * Complimentarty Purchases / Shopping Cart&mdash;item-set-based
+        * Hybrid collaborative filtering and content based recommendations for applying business rules
 
-      The name refers to the use of this template in virtually any case that calls for recommendations - ecom, news, videos, virtually anywhere usage data is known. This recommender can auto-correlate different user actions, profile data, contextual information, and some content types to make better recommendations.
+      The name refers to the use of this template in virtually any case that calls for recommendations - ecom, news, videos, virtually anywhere usage data is known. This recommender can auto-correlate different user actions (clickstream data), profile data, contextual information (location, device), and some content types to make better recommendations that follow business rules.
     tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.5
+    status: stable
+    pio_min_version: 0.10.0-incubating
 
 - template:
     name: E-Commerce Recommendation


[10/12] incubator-predictionio git commit: Merge branch 'livedoc' into develop

Posted by do...@apache.org.
Merge branch 'livedoc' into develop


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/87b3ba44
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/87b3ba44
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/87b3ba44

Branch: refs/heads/develop
Commit: 87b3ba440eca9d23fb5c00c78753a424cbbe2a95
Parents: 2f05303 d674b89
Author: Donald Szeto <do...@apache.org>
Authored: Tue Jan 24 10:13:52 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Tue Jan 24 10:13:52 2017 -0800

----------------------------------------------------------------------
 build.sbt                                       | 166 ++---
 .../predictionio/annotation/DeveloperApi.java   |  37 ++
 .../predictionio/annotation/Experimental.java   |  38 ++
 .../predictionio/annotation/DeveloperApi.java   |  37 --
 .../predictionio/annotation/Experimental.java   |  38 --
 .../predictionio/data/storage/DataMap.scala     |   5 +-
 docs/manual/lib/gallery_generator.rb            |  84 ++-
 docs/manual/source/demo/tapster.html.md         |   2 +-
 docs/manual/source/gallery/templates.yaml       | 618 +++++++++++--------
 docs/manual/source/images/pio-architecture.svg  |   4 +
 .../source/stylesheets/partials/_tabs.css.scss  |  11 +
 docs/manual/source/system/index.html.md         |  28 +-
 docs/scaladoc/rootdoc.txt                       |   2 +-
 project/build.properties                        |   2 +-
 project/unidoc.sbt                              |   2 +-
 15 files changed, 617 insertions(+), 457 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/87b3ba44/build.sbt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/87b3ba44/docs/manual/source/demo/tapster.html.md
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/87b3ba44/docs/manual/source/gallery/templates.yaml
----------------------------------------------------------------------
diff --cc docs/manual/source/gallery/templates.yaml
index f375910,4dc7e61..62955f2
--- a/docs/manual/source/gallery/templates.yaml
+++ b/docs/manual/source/gallery/templates.yaml
@@@ -97,15 -232,17 +232,17 @@@
      type: Parallel
      language: Scala
      license: "Apache Licence 2.0"
-     status: alpha
+     status: stable
      pio_min_version: 0.9.2
+     apache_pio_convesion_required: "requires conversion"
+     support_link: '<a href="https://github.com/vngrs/template-scala-parallel-viewedthenbought/issues">Github issues</a>'
  
  - template:
-     name: Recommendation
-     repo: "https://github.com/apache/incubator-predictionio-template-recommender"
+     name: Frequent Pattern Mining
+     repo: "https://github.com/goliasz/pio-template-fpm"
      description: |-
-       An engine template is an almost-complete implementation of an engine. PredictionIO's Recommendation Engine Template has integrated Apache Spark MLlib's Collaborative Filtering algorithm by default. You can customize it easily to fit your specific needs.
-     tags: [unsupervised]
 -      Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score. Sometimes used as a shopping cart recommender but has other uses. 
++      Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score. Sometimes used as a shopping cart recommender but has other uses.
+     tags: [recommender]
      type: Parallel
      language: Scala
      license: "Apache Licence 2.0"
@@@ -123,25 -292,15 +292,28 @@@
      license: "Apache Licence 2.0"
      status: stable
      pio_min_version: 0.9.2
+     apache_pio_convesion_required: "already compatible"
+     support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
  
  - template:
 +    name: Classification
 +    repo: "https://github.com/haricharan123/PredictionIo-lingpipe-MultiLabelClassification"
 +    description: |-
-       This engine template is an almost-complete implementation of an engine meant to used with PredictionIO. This multi label Classification Engine Template has integrated Lingpipe (http://alias-i.com/lingpipe/) algorithm by default.
++      This engine template is an almost-complete implementation of an engine meant to used with PredictionIO. This Multi-label Classification Engine Template has integrated LingPipe (http://alias-i.com/lingpipe/) algorithm by default.
 +    tags: [classification]
 +    type: Parallel
 +    language: Java
 +    license: "Apache Licence 2.0"
 +    status: stable
 +    pio_min_version: 0.9.5
++    apache_pio_convesion_required: "already compatible"
 +
 +- template:
-     name: Content Based SVD Item Similarity Engine
-     repo: "https://github.com/alexice/template-scala-parallel-svd-item-similarity"
+     name: Lead Scoring
+     repo: "https://github.com/PredictionIO/template-scala-parallel-leadscoring"
      description: |-
-       Template to calculate similarity between items based on their attributes. Attributes can be either numeric or categorical in the last case it will be encoded using one-hot encoder. Algorithm uses SVD in order to reduce data dimensionality. Cosine similarity is now implemented but can be easily extended to other similarity measures.
-     tags: [unsupervised]
+       This engine template predicts the probability of an user will convert (conversion event by user) in the current session.
+     tags: [classification]
      type: Parallel
      language: Scala
      license: "Apache Licence 2.0"
@@@ -502,13 -639,17 +652,17 @@@
      license: "Apache Licence 2.0"
      status: alpha
      pio_min_version: "-"
+     apache_pio_convesion_required: "requires conversion"
+     support_link: '<a href="https://github.com/Ling-Ling/CoreNLP-Text-Classification/issues">Github issues</a>'
+ 
 -# other 
++# other
  
  - template:
-     name: Frequent Pattern Mining
-     repo: "https://github.com/goliasz/pio-template-fpm"
+     name: template-decision-tree-feature-importance
+     repo: "https://github.com/anthill/template-decision-tree-feature-importance"
      description: |-
-       Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score.
-     tags: [unsupervised]
+       This template shows how to use spark' decision tree. It enables : - both categorical and continuous features - feature importance calculation - tree output in json - reading training data from a csv file
+     tags: [other]
      type: Parallel
      language: Scala
      license: "Apache Licence 2.0"
@@@ -526,39 -669,6 +682,5 @@@
      license: "Apache Licence 2.0"
      status: stable
      pio_min_version: 0.9.2
- 
- - template:
-     name: Similar Product with Rating
-     repo: "https://github.com/ramaboo/template-scala-parallel-similarproduct-with-rating"
-     description: |-
-       Similar product template with rating support! Used for the MovieLens Demo.
-     tags: [unsupervised]
-     type: Parallel
-     language: Scala
-     license: "Apache Licence 2.0"
-     status: beta
-     pio_min_version: 0.9.0
- 
- - template:
-     name: Sentiment Analysis - Bag of Words Model
-     repo: "https://github.com/peoplehum/BagOfWords_SentimentAnalysis_Template"
-     description: |-
-       This sentiment analysis template uses a bag of words model. Given text, the engine will return sentiment as 1.0 (positive) or 0.0 (negative) along with scores indicating how +ve or -ve it is.
-     tags: [nlp]
-     type: Parallel
-     language: Scala
-     license: "Apache Licence 2.0"
-     status: stable
-     pio_min_version: 0.10.0-incubating
- 
- - template:
-     name: Topic Labelling with Wikipedia
-     repo: "https://github.com/peoplehum/template-Labelling-LDA-Topics-with-wikipedia"
-     description: |-
-       This template will label topics (e.g. topic generated through LDA topic modeling) with relevant category by referring to Wikipedia as a knowledge base.
-     tags: [nlp]
-     type: Parallel
-     language: Scala
-     license: "Apache Licence 2.0"
-     status: stable
-     pio_min_version: 0.10.0-incubating
+     apache_pio_convesion_required: "already compatible"
+     support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 -

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/87b3ba44/docs/manual/source/system/index.html.md
----------------------------------------------------------------------


[11/12] incubator-predictionio git commit: [PIO-52] Replace Middleman frontmatter

Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/production/deploy-cloudformation.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/production/deploy-cloudformation.html.md b/docs/manual/source/production/deploy-cloudformation.html.md
index 1e0b0fe..d1c9cdf 100644
--- a/docs/manual/source/production/deploy-cloudformation.html.md
+++ b/docs/manual/source/production/deploy-cloudformation.html.md
@@ -1,3 +1,7 @@
+---
+title: Deploying with AWS CloudFormation
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Deploying with AWS CloudFormation
----
-
-This document has been moved to [here](/system/deploy-cloudformation/).
\ No newline at end of file
+This document has been moved to [here](/system/deploy-cloudformation/).

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/resources/faq.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/resources/faq.html.md b/docs/manual/source/resources/faq.html.md
index d3ca496..80d98d5 100644
--- a/docs/manual/source/resources/faq.html.md
+++ b/docs/manual/source/resources/faq.html.md
@@ -1,3 +1,7 @@
+---
+title: Frequently Asked Questions
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Frequently Asked Questions
----
-
 If you have questions that are not resolved below, you can subscribe and post to
 the user mailing list. You can follow the instructions [here](/support).
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/resources/glossary.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/resources/glossary.html.md b/docs/manual/source/resources/glossary.html.md
index af7422a..2667417 100644
--- a/docs/manual/source/resources/glossary.html.md
+++ b/docs/manual/source/resources/glossary.html.md
@@ -1,3 +1,7 @@
+---
+title: Glossary
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Glossary
----
-
 **Data Preparator**
 - Part of Engine. It reads data from source and transforms it to the desired
 format.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/resources/intellij.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/resources/intellij.html.md.erb b/docs/manual/source/resources/intellij.html.md.erb
index 4469a1c..57388dc 100644
--- a/docs/manual/source/resources/intellij.html.md.erb
+++ b/docs/manual/source/resources/intellij.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Developing Engines with IntelliJ IDEA
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Developing Engines with IntelliJ IDEA
----
-
-
 ## Prerequisites
 
 This documentation assumes that you have a fully functional PredictionIO setup.
@@ -90,8 +89,8 @@ automatically or prompt you to refresh.
 
 ### Dependencies
 
-IntelliJ has the annoying tendency to drop some dependencies when you refresh your build.sbt after any changes. 
-To avoid this we put any jars that must be available at runtime into a separate empty module in the project then 
+IntelliJ has the annoying tendency to drop some dependencies when you refresh your build.sbt after any changes.
+To avoid this we put any jars that must be available at runtime into a separate empty module in the project then
 we make the main engine project depend on this dummy module for runtime classes.
 
 Right click on the project and click *Open Module Settings*. In the second modules column hit **+** and create a
@@ -110,7 +109,7 @@ change the scope of the jars to **runtime**:
 
 ![Create empty module and add dependencies](/images/intellij/pio-runtime-jar-deps.png)
 
-Now make your engine module dependent on the pio-runtime-jars module for scope = runtime.  
+Now make your engine module dependent on the pio-runtime-jars module for scope = runtime.
 
 ![Create empty module and add dependencies](/images/intellij/pio-runtime-jars.png)
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/resources/upgrade.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/resources/upgrade.html.md b/docs/manual/source/resources/upgrade.html.md
index e8fd102..2e30123 100644
--- a/docs/manual/source/resources/upgrade.html.md
+++ b/docs/manual/source/resources/upgrade.html.md
@@ -1,3 +1,7 @@
+---
+title: Upgrade Instructions
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Upgrade Instructions
----
-
-
 This page highlights major changes in each version and upgrade tools.
 
 # How to upgrade

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/robots.txt
----------------------------------------------------------------------
diff --git a/docs/manual/source/robots.txt b/docs/manual/source/robots.txt
index e42f0d7..11b63ad 100644
--- a/docs/manual/source/robots.txt
+++ b/docs/manual/source/robots.txt
@@ -1,4 +1,4 @@
 User-agent: *
 Disallow:
 
-Sitemap: http://docs.prediction.io/sitemap.xml
+Sitemap: http://predictionio.incubator.apache.org/sitemap.xml

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/index.html.md b/docs/manual/source/samples/index.html.md
index d28b6ea..2819c84 100644
--- a/docs/manual/source/samples/index.html.md
+++ b/docs/manual/source/samples/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Sample Style Page
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Sample Style Page
----
-
 ## Alerts
 
 ### Info

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/languages.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/languages.html.md b/docs/manual/source/samples/languages.html.md
index 100058d..1d57569 100644
--- a/docs/manual/source/samples/languages.html.md
+++ b/docs/manual/source/samples/languages.html.md
@@ -1,3 +1,8 @@
+---
+title: Language Samples
+hidden: true
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +20,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Language Samples
-hidden: true
----
-
 ## Plain Text
 
 This is a sample code block with no language.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-1.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-1.html.md b/docs/manual/source/samples/level-1.html.md
index ccd8657..ed966a2 100644
--- a/docs/manual/source/samples/level-1.html.md
+++ b/docs/manual/source/samples/level-1.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 1
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 1
----
-
 ## Level 1

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-2-1.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-2-1.html.md b/docs/manual/source/samples/level-2-1.html.md
index ef055cc..75d2f20 100644
--- a/docs/manual/source/samples/level-2-1.html.md
+++ b/docs/manual/source/samples/level-2-1.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 2.1
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 2.1
----
-
 ## Level 2.1

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-2-2.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-2-2.html.md b/docs/manual/source/samples/level-2-2.html.md
index ef5d927..c1abc47 100644
--- a/docs/manual/source/samples/level-2-2.html.md
+++ b/docs/manual/source/samples/level-2-2.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 2.2
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 2.2
----
-
 ## Level 2.2

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-2.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-2.html.md b/docs/manual/source/samples/level-2.html.md
index d5f5b68..f99c1e2 100644
--- a/docs/manual/source/samples/level-2.html.md
+++ b/docs/manual/source/samples/level-2.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 2
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 2
----
-
 ## Level 2

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-3-1.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-3-1.html.md b/docs/manual/source/samples/level-3-1.html.md
index a488aeb..967f001 100644
--- a/docs/manual/source/samples/level-3-1.html.md
+++ b/docs/manual/source/samples/level-3-1.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 3.1
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 3.1
----
-
 ## Level 3.1

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-3-2.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-3-2.html.md b/docs/manual/source/samples/level-3-2.html.md
index f1d67d5..809d663 100644
--- a/docs/manual/source/samples/level-3-2.html.md
+++ b/docs/manual/source/samples/level-3-2.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 3.2
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 3.2
----
-
 ## Level 3.2

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-3.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-3.html.md b/docs/manual/source/samples/level-3.html.md
index c793a96..b943a7a 100644
--- a/docs/manual/source/samples/level-3.html.md
+++ b/docs/manual/source/samples/level-3.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 3
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 3
----
-
 ## Level 3

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-4-1.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-4-1.html.md b/docs/manual/source/samples/level-4-1.html.md
index 1e24a49..c47e433 100644
--- a/docs/manual/source/samples/level-4-1.html.md
+++ b/docs/manual/source/samples/level-4-1.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 4.1
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 4.1
----
-
 ## Level 4.1

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-4-2.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-4-2.html.md b/docs/manual/source/samples/level-4-2.html.md
index 225095a..88b83eb 100644
--- a/docs/manual/source/samples/level-4-2.html.md
+++ b/docs/manual/source/samples/level-4-2.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 4.2
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 4.2
----
-
 ## Level 4.2

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-4-3.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-4-3.html.md b/docs/manual/source/samples/level-4-3.html.md
index 247ccaf..b45084d 100644
--- a/docs/manual/source/samples/level-4-3.html.md
+++ b/docs/manual/source/samples/level-4-3.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 4.3
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 4.3
----
-
 ## Level 4.3

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/level-4.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/level-4.html.md b/docs/manual/source/samples/level-4.html.md
index 63f9101..5843e61 100644
--- a/docs/manual/source/samples/level-4.html.md
+++ b/docs/manual/source/samples/level-4.html.md
@@ -1,3 +1,7 @@
+---
+title: Level 4
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Level 4
----
-
 ## Level 4

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/narrow.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/narrow.html.md b/docs/manual/source/samples/narrow.html.md
index 3b7357a..b63a851 100644
--- a/docs/manual/source/samples/narrow.html.md
+++ b/docs/manual/source/samples/narrow.html.md
@@ -1,3 +1,8 @@
+---
+title: Narrow Page
+hidden: true
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,9 +20,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Narrow Page
-hidden: true
----
-
-Keep it short!
\ No newline at end of file
+Keep it short!

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/sizing.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/sizing.html.md b/docs/manual/source/samples/sizing.html.md
index 23b83a2..695a3b6 100644
--- a/docs/manual/source/samples/sizing.html.md
+++ b/docs/manual/source/samples/sizing.html.md
@@ -1,3 +1,8 @@
+---
+title: Sizing Samples with an Extra Long Title to ThisIsAVeryVeryLongWord Show Wrapping
+hidden: true
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +20,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Sizing Samples with an Extra Long Title to ThisIsAVeryVeryLongWord Show Wrapping
-hidden: true
----
-
 ## Long Text
 
 This is a paragraph of text that spans multiple lines.
@@ -36,4 +36,4 @@ This is a code block with lines longer than 80 characters. This is a code block
 ```
 
 This paragraph contains a single word 80 characters long.
-12345678901234567890123456789012345678901234567890123456789012345678901234567890
\ No newline at end of file
+12345678901234567890123456789012345678901234567890123456789012345678901234567890

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/samples/tabs.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/samples/tabs.html.md b/docs/manual/source/samples/tabs.html.md
index 79b5687..4520d5c 100644
--- a/docs/manual/source/samples/tabs.html.md
+++ b/docs/manual/source/samples/tabs.html.md
@@ -1,3 +1,8 @@
+---
+title: Tabs
+hidden: true
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +20,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Tabs
-hidden: true
----
-
 This page is used to test the tabs plugin based on [Tabslet](https://github.com/vdw/Tabslet).
 
 <div class="tabs">
@@ -100,8 +100,8 @@ $ cd path/to/your/file
 ```
   </div>
   <div data-tab="HTML" data-lang="html">
-  
+
   This includes **bold** with Markdown.
-  
+
   </div>
-</div>
\ No newline at end of file
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/community.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/community.html.md b/docs/manual/source/sdk/community.html.md
index 05f4cdf..d561f52 100644
--- a/docs/manual/source/sdk/community.html.md
+++ b/docs/manual/source/sdk/community.html.md
@@ -1,3 +1,7 @@
+---
+title: Community Powered SDKs
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Community Powered SDKs
----
-
 [SDK contribution](/community/contribute-sdk) is always welcomed!
 
 ## Node.js SDK for PredictionIO

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/index.html.md b/docs/manual/source/sdk/index.html.md
index 13aa726..56424e2 100644
--- a/docs/manual/source/sdk/index.html.md
+++ b/docs/manual/source/sdk/index.html.md
@@ -1,3 +1,7 @@
+---
+title: List of PredictionIO SDKs
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: List of PredictionIO SDKs
----
-
 ## Officially Supported SDKs
 
 * [Java & Android SDK](/sdk/java/)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/java.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/java.html.md.erb b/docs/manual/source/sdk/java.html.md.erb
index 6d1a1e3..3923635 100644
--- a/docs/manual/source/sdk/java.html.md.erb
+++ b/docs/manual/source/sdk/java.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Java & Android SDK
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Java & Android SDK
----
-
 ## API Docs
 
 [View API documentation](http://docs.prediction.io/java/api/) for version <%= data.versions.pio %>.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/php.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/php.html.md.erb b/docs/manual/source/sdk/php.html.md.erb
index b119c72..4a9930c 100644
--- a/docs/manual/source/sdk/php.html.md.erb
+++ b/docs/manual/source/sdk/php.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: PHP SDK
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: PHP SDK
----
-
 ## API Docs
 
 [View API documentation](http://docs.prediction.io/php/api/) for version <%= data.versions.pio %>.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/python.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/python.html.md.erb b/docs/manual/source/sdk/python.html.md.erb
index 1d756aa..e3e7396 100644
--- a/docs/manual/source/sdk/python.html.md.erb
+++ b/docs/manual/source/sdk/python.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Python SDK
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Python SDK
----
-
 ## API Docs
 
 [View API documentation](http://pythonhosted.org/PredictionIO/) for version <%= data.versions.pio %>.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/sdk/ruby.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/sdk/ruby.html.md.erb b/docs/manual/source/sdk/ruby.html.md.erb
index 6be7294..b6548f7 100644
--- a/docs/manual/source/sdk/ruby.html.md.erb
+++ b/docs/manual/source/sdk/ruby.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Ruby SDK
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Ruby SDK
----
-
 ## API Docs
 
 [View API documentation](http://docs.prediction.io/ruby/api/PredictionIO.html) for version <%= data.versions.pio %>.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/search/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/search/index.html.md b/docs/manual/source/search/index.html.md
index d17d9e5..26e1193 100644
--- a/docs/manual/source/search/index.html.md
+++ b/docs/manual/source/search/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Search Results
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Search Results
----
 <div id="st-results-container"></div>

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/start/customize.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/start/customize.html.md b/docs/manual/source/start/customize.html.md
index ebad403..bc1a94b 100644
--- a/docs/manual/source/start/customize.html.md
+++ b/docs/manual/source/start/customize.html.md
@@ -1,3 +1,7 @@
+---
+title: Customizing an Engine
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,13 +19,9 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Customizing an Engine
----
-
 When you download an engine template, it comes with the source code. All engine templates follow the same DASE architecture and they are designed to be customizable.
 
-You may want to customize an engine for many reasons, for example: 
+You may want to customize an engine for many reasons, for example:
 
 * Use another algorithm, or multiple of them
 * Read data from a different, or existing, data store
@@ -37,4 +37,4 @@ After you have finished modifying the code, you can re-build and deploy the engi
 
 ```
 $ pio build; pio train; pio deploy
-```
\ No newline at end of file
+```

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/start/deploy.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/start/deploy.html.md.erb b/docs/manual/source/start/deploy.html.md.erb
index 5237e0e..b8d60ed 100644
--- a/docs/manual/source/start/deploy.html.md.erb
+++ b/docs/manual/source/start/deploy.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Deploying your first Engine
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Deploying your first Engine
----
-
 Once you have created an engine from a template, it is time to deploy it as a web service. One or more of your applications can then send real-time prediction queries to it.
 
 It takes 6 simple steps to deploy and use an engine:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/start/download.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/start/download.html.md b/docs/manual/source/start/download.html.md
index 5b2a17b..92f7642 100644
--- a/docs/manual/source/start/download.html.md
+++ b/docs/manual/source/start/download.html.md
@@ -1,3 +1,7 @@
+---
+title: Downloading an Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Downloading an Engine Template
----
-
 The first step to create a new engine is to browse [PredictionIO template
 gallery](/gallery/template-gallery) where you could find Engine Templates for
 all kinds of machine learning tasks. Choose an engine template that matches your

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/start/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/start/index.html.md b/docs/manual/source/start/index.html.md
index 04f16b2..74db00c 100644
--- a/docs/manual/source/start/index.html.md
+++ b/docs/manual/source/start/index.html.md
@@ -1,3 +1,7 @@
+---
+title: PredictionIO - A Quick Intro
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: PredictionIO - A Quick Intro
----
-
 ## Overview
 
 PredictionIO consist of the following components:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/support/index.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/support/index.html.md.erb b/docs/manual/source/support/index.html.md.erb
index 70712da..08e06ce 100644
--- a/docs/manual/source/support/index.html.md.erb
+++ b/docs/manual/source/support/index.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Getting Help
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Getting Help
----
-
 ## Community Support
 
 Apahce PredictionIO (incubating) has a welcoming and active community. We are

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/system/anotherdatastore.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/system/anotherdatastore.html.md b/docs/manual/source/system/anotherdatastore.html.md
index b7c77c7..73fa967 100644
--- a/docs/manual/source/system/anotherdatastore.html.md
+++ b/docs/manual/source/system/anotherdatastore.html.md
@@ -1,3 +1,7 @@
+---
+title: Using Another Data Store
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Using Another Data Store
----
-
 PredictionIO has a thin storage layer to abstract meta data, event data, and
 model data access. The layer defines a set of standard interfaces to support
 multiple data store backends. PredictionIO users can configure the backend of
@@ -217,7 +217,7 @@ When `TYPE` is set to `jdbc`, the following configuration keys are supported.
 -   INDEX (optional since v0.9.6, default to disabled)
 
     This value is used by creating indexes on entityId and entityType columns to
-    improve performance when findByEntity function is called. Note that these columns 
+    improve performance when findByEntity function is called. Note that these columns
     of entityId and entityType will be created as varchar(255), e.g.
     `PIO_STORAGE_SOURCES_PGSQL_INDEX=enabled`
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/system/deploy-cloudformation.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/system/deploy-cloudformation.html.md.erb b/docs/manual/source/system/deploy-cloudformation.html.md.erb
index 76900dc..e320446 100644
--- a/docs/manual/source/system/deploy-cloudformation.html.md.erb
+++ b/docs/manual/source/system/deploy-cloudformation.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Deploying with AWS CloudFormation
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Deploying with AWS CloudFormation
----
-
 ##Overview
 
 You can scale PredictionIO on AWS with

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/system/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/system/index.html.md b/docs/manual/source/system/index.html.md
index 35b7e11..1030fec 100644
--- a/docs/manual/source/system/index.html.md
+++ b/docs/manual/source/system/index.html.md
@@ -1,3 +1,7 @@
+---
+title: System Architecture and Dependencies
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: System Architecture and Dependencies
----
-
 During the [installation](/install), you have installed the latest stable versions of the following software:
 
 * Apache Hadoop up to 2.7.2 (required only if YARN and HDFS are needed)
@@ -26,7 +26,7 @@ During the [installation](/install), you have installed the latest stable versio
 * Apache Spark up to 1.6.3 for Hadoop 2.6 (not Spark 2.x version)
 * Elasticsearch up to 1.7.5 (not the Elasticsearch 2.x version)
 
-This section explains general rules-of-thumb for how they are used in PredictionIO. The actual implementation of the Template will define how much of this applies. PredictionIO is flexible about much of this configuration but its Templates generally fit the Lambda model for integrating real-time serving with background periodic model updates. 
+This section explains general rules-of-thumb for how they are used in PredictionIO. The actual implementation of the Template will define how much of this applies. PredictionIO is flexible about much of this configuration but its Templates generally fit the Lambda model for integrating real-time serving with background periodic model updates.
 
 ![PredictionIO Systems](/images/pio-architecture.svg)
 
@@ -34,7 +34,7 @@ This section explains general rules-of-thumb for how they are used in Prediction
 events. If you are not using the PredictionIO Event Server, you do not need to
 install HBase.
 
-**Apache Spark**: Spark is a large-scale data processing engine that powers the data preparation and input to the algorithm, training, and sometimes the serving processing. PredictionIO allows for different engines to be used in training but many algorithms come from Spark's MLlib. 
+**Apache Spark**: Spark is a large-scale data processing engine that powers the data preparation and input to the algorithm, training, and sometimes the serving processing. PredictionIO allows for different engines to be used in training but many algorithms come from Spark's MLlib.
 
 **HDFS**: is a distributed filesystem from Hadoop. It allows storage to be shared among clustered machines. It is used to stage data for batch import into PIO, for export of Event Server datasets, and for storage of some models (see your template for details).
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/classification/add-algorithm.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/classification/add-algorithm.html.md b/docs/manual/source/templates/classification/add-algorithm.html.md
index 8b20bb1..9f29adc 100644
--- a/docs/manual/source/templates/classification/add-algorithm.html.md
+++ b/docs/manual/source/templates/classification/add-algorithm.html.md
@@ -1,3 +1,7 @@
+---
+title: Using Alternative Algorithm
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Using Alternative Algorithm
----
-
 The classification template uses the Naive Bayes algorithm by default. You can easily add and use other MLlib classification algorithms. The following will demonstrate how to add the [MLlib Random Forests algorithm](https://spark.apache.org/docs/latest/mllib-ensembles.html) into the engine.
 
 ## Create a new file RandomForestAlgorithm.scala

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/classification/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/classification/dase.html.md.erb b/docs/manual/source/templates/classification/dase.html.md.erb
index 01f8e19..140c677 100644
--- a/docs/manual/source/templates/classification/dase.html.md.erb
+++ b/docs/manual/source/templates/classification/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Classification)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Classification)
----
-
 <%= partial 'shared/dase/dase',
 locals: {
   template_name: 'Classification Engine Template',

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/classification/how-to.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/classification/how-to.html.md b/docs/manual/source/templates/classification/how-to.html.md
index a4f44c2..9ed3504 100644
--- a/docs/manual/source/templates/classification/how-to.html.md
+++ b/docs/manual/source/templates/classification/how-to.html.md
@@ -1,3 +1,7 @@
+---
+title: How-To  (Classification)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: How-To  (Classification)
----
-      
-Here are the pages that show you how you can customize the Classification engine template. 
- 
+Here are the pages that show you how you can customize the Classification engine template.
+
 - [Use Alternative Algorithm](/templates/classification/add-algorithm/)
 - [Read Custom Properties](/templates/classification/reading-custom-properties/)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/classification/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/classification/quickstart.html.md.erb b/docs/manual/source/templates/classification/quickstart.html.md.erb
index 8e9183b..70a99e2 100644
--- a/docs/manual/source/templates/classification/quickstart.html.md.erb
+++ b/docs/manual/source/templates/classification/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Classification Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Classification Engine Template
----
-
 ## Overview
 
 An engine template is an almost-complete implementation of an engine.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/classification/reading-custom-properties.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/classification/reading-custom-properties.html.md b/docs/manual/source/templates/classification/reading-custom-properties.html.md
index c5b1877..4dc43fe 100644
--- a/docs/manual/source/templates/classification/reading-custom-properties.html.md
+++ b/docs/manual/source/templates/classification/reading-custom-properties.html.md
@@ -1,3 +1,7 @@
+---
+title: Reading Custom Properties (Classification)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Reading Custom Properties (Classification)
----
-
 By default, the classification template reads 4 properties of a user entity: "attr0", "attr1", "attr2" and "plan". You can modify the [default DataSource](/templates/classification/dase/#data) to read to read your custom properties or different Entity Type.
 
 In this example, we modify DataSource to read properties "featureA", "featureB", "featureC", "featureD" and "label" for entity type "item".

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/complementarypurchase/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/complementarypurchase/dase.html.md.erb b/docs/manual/source/templates/complementarypurchase/dase.html.md.erb
index 8cb559f..7fc8522 100644
--- a/docs/manual/source/templates/complementarypurchase/dase.html.md.erb
+++ b/docs/manual/source/templates/complementarypurchase/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Complementary Purchase)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Complementary Purchase)
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'Complementary Purchase Engine Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/complementarypurchase/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/complementarypurchase/quickstart.html.md.erb b/docs/manual/source/templates/complementarypurchase/quickstart.html.md.erb
index 106fbe7..d6366c1 100644
--- a/docs/manual/source/templates/complementarypurchase/quickstart.html.md.erb
+++ b/docs/manual/source/templates/complementarypurchase/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Complementary Purchase Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Complementary Purchase Engine Template
----
-
 ## Overview
 
 This engine template recommends the complementary items which most user frequently buy at the same time together with one or more items in the query.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/ecommercerecommendation/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/ecommercerecommendation/dase.html.md.erb b/docs/manual/source/templates/ecommercerecommendation/dase.html.md.erb
index 9d21ffd..d59435a 100644
--- a/docs/manual/source/templates/ecommercerecommendation/dase.html.md.erb
+++ b/docs/manual/source/templates/ecommercerecommendation/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (E-Commerce Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (E-Commerce Recommendation)
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'E-Commerce Recommendation Engine Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/ecommercerecommendation/how-to.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/ecommercerecommendation/how-to.html.md b/docs/manual/source/templates/ecommercerecommendation/how-to.html.md
index 8d4552e..b5ac7d9 100644
--- a/docs/manual/source/templates/ecommercerecommendation/how-to.html.md
+++ b/docs/manual/source/templates/ecommercerecommendation/how-to.html.md
@@ -1,3 +1,7 @@
+---
+title: How-To (E-Commerce Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: How-To (E-Commerce Recommendation)
----
-
 Here are the pages that show you how you can customize the E-Commerce Recommendation engine template.
 
 - [Train with Rate Event](/templates/ecommercerecommendation/train-with-rate-event/)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/ecommercerecommendation/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/ecommercerecommendation/quickstart.html.md.erb b/docs/manual/source/templates/ecommercerecommendation/quickstart.html.md.erb
index 54d2b3f..c71ae77 100644
--- a/docs/manual/source/templates/ecommercerecommendation/quickstart.html.md.erb
+++ b/docs/manual/source/templates/ecommercerecommendation/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - E-Commerce Recommendation Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - E-Commerce Recommendation Engine Template
----
-
 ## Overview
 
 This engine template provides personalized recommendation for e-commerce applications with the following features by default:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/ecommercerecommendation/train-with-rate-event.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/ecommercerecommendation/train-with-rate-event.html.md.erb b/docs/manual/source/templates/ecommercerecommendation/train-with-rate-event.html.md.erb
index 74445b8..7d83429 100644
--- a/docs/manual/source/templates/ecommercerecommendation/train-with-rate-event.html.md.erb
+++ b/docs/manual/source/templates/ecommercerecommendation/train-with-rate-event.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Train with Rate Event (E-Commerce Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Train with Rate Event (E-Commerce Recommendation)
----
-
 This examples demonstrates how to modify E-Commerce Recommendation template to use "rate" event as Training Data.
 
 However, recent "view" event is still used for recommendation for new user (to recommend items similar to what new user just recently viewed) and the returned scores are not predicted rating but a ranked scores for new user.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/javaecommercerecommendation/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/javaecommercerecommendation/dase.html.md.erb b/docs/manual/source/templates/javaecommercerecommendation/dase.html.md.erb
index 33c4f3d..69ef622 100644
--- a/docs/manual/source/templates/javaecommercerecommendation/dase.html.md.erb
+++ b/docs/manual/source/templates/javaecommercerecommendation/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (E-Commerce Recommendation (Java))
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (E-Commerce Recommendation (Java))
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'E-Commerce Recommendation Engine Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/javaecommercerecommendation/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/javaecommercerecommendation/quickstart.html.md.erb b/docs/manual/source/templates/javaecommercerecommendation/quickstart.html.md.erb
index 1c1bc40..d7d4430 100644
--- a/docs/manual/source/templates/javaecommercerecommendation/quickstart.html.md.erb
+++ b/docs/manual/source/templates/javaecommercerecommendation/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - E-Commerce Recommendation Engine Template (Java)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - E-Commerce Recommendation Engine Template (Java)
----
-
 ## Overview
 
 This engine template provides personalized recommendation for e-commerce applications with the following features by default:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/leadscoring/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/leadscoring/dase.html.md.erb b/docs/manual/source/templates/leadscoring/dase.html.md.erb
index 2dbf547..e8abda2 100644
--- a/docs/manual/source/templates/leadscoring/dase.html.md.erb
+++ b/docs/manual/source/templates/leadscoring/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Lead Scoring)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Lead Scoring)
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'Lead Scoring Engine Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/leadscoring/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/leadscoring/quickstart.html.md.erb b/docs/manual/source/templates/leadscoring/quickstart.html.md.erb
index ab823db..03413f8 100644
--- a/docs/manual/source/templates/leadscoring/quickstart.html.md.erb
+++ b/docs/manual/source/templates/leadscoring/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Lead Scoring Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Lead Scoring Engine Template
----
-
 ## Overview
 
 This engine template predicts the probability of an user will convert (conversion event by user) in the current session.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/productranking/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/productranking/dase.html.md.erb b/docs/manual/source/templates/productranking/dase.html.md.erb
index 750c3b6..ee42b95 100644
--- a/docs/manual/source/templates/productranking/dase.html.md.erb
+++ b/docs/manual/source/templates/productranking/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Product Ranking)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Product Ranking)
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'Product Ranking Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/productranking/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/productranking/quickstart.html.md.erb b/docs/manual/source/templates/productranking/quickstart.html.md.erb
index 01d3147..bb0802e 100644
--- a/docs/manual/source/templates/productranking/quickstart.html.md.erb
+++ b/docs/manual/source/templates/productranking/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Product Ranking Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Product Ranking Engine Template
----
-
 ## Overview
 
 This engine template sorts a list of products for a user based on his/her preference. This is ideal for personalizing the display order of product page, catalog, or menu items if you have large number of options. It creates engagement and early conversion by placing products that a user prefers on the top.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/batch-evaluator.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/batch-evaluator.html.md b/docs/manual/source/templates/recommendation/batch-evaluator.html.md
index 09064ff..4e872bc 100644
--- a/docs/manual/source/templates/recommendation/batch-evaluator.html.md
+++ b/docs/manual/source/templates/recommendation/batch-evaluator.html.md
@@ -1,3 +1,7 @@
+---
+title: Batch Persistable Evaluator (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Batch Persistable Evaluator (Recommendation)
----
-
 This how-to tutorial would explain how you can also use `$pio eval` to persist predicted result for a batch of queries. Please read the [Evaluation](/templates/recommendation/evaluation/) to understand the usage of DataSoure's `readEval()` and the Evaluation component first.
 
 WARNING: This tutorial is based on some experimental and developer features, which may be changed in future release.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/blacklist-items.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/blacklist-items.html.md b/docs/manual/source/templates/recommendation/blacklist-items.html.md
index b44de70..b5e0e38 100644
--- a/docs/manual/source/templates/recommendation/blacklist-items.html.md
+++ b/docs/manual/source/templates/recommendation/blacklist-items.html.md
@@ -1,3 +1,7 @@
+---
+title: Filter Recommended Items by Blacklist in Query (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Filter Recommended Items by Blacklist in Query (Recommendation)
----
-
 Let's say you want to supply a backList for each query to exclude some items from recommendation (For example, in the browsing session, the user just added some items to shopping cart, or you have a list of items you want to filter out, you may want to supply blackList in Query). This how-to will demonstrate how you can do it.
 
 Note that you may also use [E-Commerce Recommendation Template](/gallery/template-gallery#recommender-systems) which supports this feature by default.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/customize-data-prep.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/customize-data-prep.html.md b/docs/manual/source/templates/recommendation/customize-data-prep.html.md
index 921bf0d..1a48f1e 100644
--- a/docs/manual/source/templates/recommendation/customize-data-prep.html.md
+++ b/docs/manual/source/templates/recommendation/customize-data-prep.html.md
@@ -1,3 +1,7 @@
+---
+title: Customizing Data Preparator (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Customizing Data Preparator (Recommendation)
----
-
-
 Data Preparator is where pre-processing actions occurs. For example, one may
 want to remove some very popular items from the training data because she thinks
 that these items may not help finding individual person's tastes or one may have

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/customize-serving.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/customize-serving.html.md b/docs/manual/source/templates/recommendation/customize-serving.html.md
index 4504a9b..3dcdc6c 100644
--- a/docs/manual/source/templates/recommendation/customize-serving.html.md
+++ b/docs/manual/source/templates/recommendation/customize-serving.html.md
@@ -1,3 +1,7 @@
+---
+title: Customizing Serving Component (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Customizing Serving Component (Recommendation)
----
-
 Serving component is where post-processing occurs. For example, if you are
 recommending items to users, you may want to remove items that are not
 currently in stock from the list of recommendation.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/dase.html.md.erb b/docs/manual/source/templates/recommendation/dase.html.md.erb
index e4ba10e..3a3f58b 100644
--- a/docs/manual/source/templates/recommendation/dase.html.md.erb
+++ b/docs/manual/source/templates/recommendation/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Recommendation)
----
-
 <%= partial 'shared/dase/dase',
 locals: {
   template_name: 'Recommendation Engine Template',
@@ -152,7 +152,7 @@ class DataSource(val dsp: DataSourceParams)
   def readTraining(sc: SparkContext): TrainingData = {
     new TrainingData(getRatings(sc))
   }
-  
+
 }
 ```
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/evaluation.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/evaluation.html.md.erb b/docs/manual/source/templates/recommendation/evaluation.html.md.erb
index 9a913c1..15522a7 100644
--- a/docs/manual/source/templates/recommendation/evaluation.html.md.erb
+++ b/docs/manual/source/templates/recommendation/evaluation.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Evaluation Explained (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Evaluation Explained (Recommendation)
----
-
 A PredictionIO engine is instantiated by a set of parameters, these parameters
 determines which algorithm is used as well as the parameter for the algorithm.
 It naturally raises a question of how to choose the best set of parameters.  The

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/how-to.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/how-to.html.md b/docs/manual/source/templates/recommendation/how-to.html.md
index 5494f3e..00ffe2f 100644
--- a/docs/manual/source/templates/recommendation/how-to.html.md
+++ b/docs/manual/source/templates/recommendation/how-to.html.md
@@ -1,3 +1,7 @@
+---
+title: How-To  (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,12 +19,8 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: How-To  (Recommendation)
----
-      
-Here are the pages that show you how you can customize the Recommendation engine template. 
- 
+Here are the pages that show you how you can customize the Recommendation engine template.
+
 - [Read Custom Events](/templates/recommendation/reading-custom-events/)
 - [Train with Implicit Preference](/templates/recommendation/training-with-implicit-preference/)
 - [Customize Data Preparator](/templates/recommendation/customize-data-prep/)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/quickstart.html.md.erb b/docs/manual/source/templates/recommendation/quickstart.html.md.erb
index a1295d8..fa81f22 100644
--- a/docs/manual/source/templates/recommendation/quickstart.html.md.erb
+++ b/docs/manual/source/templates/recommendation/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Recommendation Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Recommendation Engine Template
----
-
 ## Overview
 
 This Recommendation Engine Template has integrated **Apache Spark MLlib**'s

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/reading-custom-events.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/reading-custom-events.html.md b/docs/manual/source/templates/recommendation/reading-custom-events.html.md
index d348e4b..ea603db 100644
--- a/docs/manual/source/templates/recommendation/reading-custom-events.html.md
+++ b/docs/manual/source/templates/recommendation/reading-custom-events.html.md
@@ -1,3 +1,7 @@
+---
+title: Reading Custom Events (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Reading Custom Events (Recommendation)
----
-
 You can modify the [default DataSource](dase.html#data) to read
 
 - Custom events other than the default **rate** and **buy** events.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/recommendation/training-with-implicit-preference.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/recommendation/training-with-implicit-preference.html.md b/docs/manual/source/templates/recommendation/training-with-implicit-preference.html.md
index c6c35a4..24e8bde 100644
--- a/docs/manual/source/templates/recommendation/training-with-implicit-preference.html.md
+++ b/docs/manual/source/templates/recommendation/training-with-implicit-preference.html.md
@@ -1,3 +1,7 @@
+---
+title: Training with Implicit Preference (Recommendation)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Training with Implicit Preference (Recommendation)
----
-
 There are two types of user preferences:
 
 - explicit preference (also referred as "explicit feedback"), such as "rating" given to item by users.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/similarproduct/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/similarproduct/dase.html.md.erb b/docs/manual/source/templates/similarproduct/dase.html.md.erb
index 8cc915d..a7db937 100644
--- a/docs/manual/source/templates/similarproduct/dase.html.md.erb
+++ b/docs/manual/source/templates/similarproduct/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Similar Product)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Similar Product)
----
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'Similar Product Engine Template' } %>
 
 ## The Engine Design

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/similarproduct/how-to.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/similarproduct/how-to.html.md b/docs/manual/source/templates/similarproduct/how-to.html.md
index e3357cd..f47c73b 100644
--- a/docs/manual/source/templates/similarproduct/how-to.html.md
+++ b/docs/manual/source/templates/similarproduct/how-to.html.md
@@ -1,3 +1,7 @@
+---
+title: How-To  (Similar Product)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: How-To  (Similar Product)
----
-      
-Here are the pages that show you how you can customize the Similar Product engine template. 
- 
+Here are the pages that show you how you can customize the Similar Product engine template.
+
 - [Multiple Events and Multiple Algorithms](/templates/similarproduct/multi-events-multi-algos)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/similarproduct/multi-events-multi-algos.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/similarproduct/multi-events-multi-algos.html.md.erb b/docs/manual/source/templates/similarproduct/multi-events-multi-algos.html.md.erb
index fba5bff..4393613 100644
--- a/docs/manual/source/templates/similarproduct/multi-events-multi-algos.html.md.erb
+++ b/docs/manual/source/templates/similarproduct/multi-events-multi-algos.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Multiple Events and Multiple Algorithms
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Multiple Events and Multiple Algorithms
----
-
 This is more advanced example, we recommend you go through the [DASE](dase.html) explanation first.
 
 The [default algorithm described in DASE](dase.html#algorithm) uses user-to-item view events as training data. However, your application may have more than one type of events which you want to take into account, such as buy, rate and like events. One way to incorporate other types of events to improve the system is to add another algorithm to process these events, build a separated model and then combine the outputs of multiple algorithms during Serving.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/similarproduct/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/similarproduct/quickstart.html.md.erb b/docs/manual/source/templates/similarproduct/quickstart.html.md.erb
index 3a34a46..d2bf180 100644
--- a/docs/manual/source/templates/similarproduct/quickstart.html.md.erb
+++ b/docs/manual/source/templates/similarproduct/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Similar Product Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Similar Product Engine Template
----
-
 ## Overview
 
 This engine template recommends products that are "similar" to the input product(s).

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/vanilla/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/vanilla/dase.html.md.erb b/docs/manual/source/templates/vanilla/dase.html.md.erb
index b737fd0..6747b12 100644
--- a/docs/manual/source/templates/vanilla/dase.html.md.erb
+++ b/docs/manual/source/templates/vanilla/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: DASE Components Explained (Vanilla)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: DASE Components Explained (Vanilla)
----
-
-
 <%= partial 'shared/dase/dase', locals: { template_name: 'Vanilla Engine Template' } %>
 
 Before you use Vanilla template to develop your engine, it's recommended that you go through the DASE explanation of one of the other templates (e.g. *Recommemdation template*, *Classification template*) to see a concrete example of how the DASE components are used.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/templates/vanilla/quickstart.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/templates/vanilla/quickstart.html.md.erb b/docs/manual/source/templates/vanilla/quickstart.html.md.erb
index e120fc0..02bea8b 100644
--- a/docs/manual/source/templates/vanilla/quickstart.html.md.erb
+++ b/docs/manual/source/templates/vanilla/quickstart.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Quick Start - Vanilla Engine Template
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Quick Start - Vanilla Engine Template
----
-
 ## Overview
 
 The purpose of the Vanilla template is for developing new engine when you find other engine templates do not fit your needs. This template provides a skeleton to kick start new engine development.


[07/12] incubator-predictionio git commit: [MINOR] fixed a typo

Posted by do...@apache.org.
[MINOR] fixed a typo


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/301b5b62
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/301b5b62
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/301b5b62

Branch: refs/heads/develop
Commit: 301b5b62159fc2cf30a9d503be108c6387214751
Parents: 205c5a7
Author: JonnyDaenen <Jo...@users.noreply.github.com>
Authored: Tue Jan 24 09:30:01 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Tue Jan 24 09:30:01 2017 -0800

----------------------------------------------------------------------
 docs/manual/source/demo/tapster.html.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/301b5b62/docs/manual/source/demo/tapster.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/tapster.html.md b/docs/manual/source/demo/tapster.html.md
index 8593fc9..e7b3455 100644
--- a/docs/manual/source/demo/tapster.html.md
+++ b/docs/manual/source/demo/tapster.html.md
@@ -334,7 +334,7 @@ queryPIO: function() {
 ```
 ### Rails
 
-On the Rails side all the fun things happen in the episodes controller locates at: `app/controllers/episodes_controller` [View on GitHub](https://github.com/PredictionIO/Demo-Tapster/blob/master/app/controllers/episodes_controller.rb).
+On the Rails side all the fun things happen in the episodes controller located at: `app/controllers/episodes_controller` [View on GitHub](https://github.com/PredictionIO/Demo-Tapster/blob/master/app/controllers/episodes_controller.rb).
 
 ```
 def query


[08/12] incubator-predictionio git commit: Closes #338

Posted by do...@apache.org.
Closes #338


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/d674b89c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/d674b89c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/d674b89c

Branch: refs/heads/develop
Commit: d674b89c7c3a17437bd406a497a08773c24c8007
Parents: 301b5b6
Author: Donald Szeto <do...@apache.org>
Authored: Tue Jan 24 09:35:45 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Tue Jan 24 09:35:45 2017 -0800

----------------------------------------------------------------------

----------------------------------------------------------------------



[12/12] incubator-predictionio git commit: [PIO-52] Replace Middleman frontmatter

Posted by do...@apache.org.
[PIO-52] Replace Middleman frontmatter


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/3c0c4c5e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/3c0c4c5e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/3c0c4c5e

Branch: refs/heads/develop
Commit: 3c0c4c5e788ea8bf9ead46c9c04697eab5e8b64d
Parents: 87b3ba4
Author: Donald Szeto <do...@apache.org>
Authored: Tue Jan 24 10:31:43 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Tue Jan 24 10:31:43 2017 -0800

----------------------------------------------------------------------
 docs/manual/source/404.html.md                  | 12 ++--
 docs/manual/source/algorithm/custom.html.md     |  8 +--
 docs/manual/source/algorithm/index.html.md      |  8 +--
 docs/manual/source/algorithm/multiple.html.md   |  9 ++-
 docs/manual/source/algorithm/switch.html.md     |  8 +--
 docs/manual/source/appintegration/index.html.md |  8 +--
 docs/manual/source/cli/index.html.md            |  8 +--
 .../source/community/contribute-code.html.md    |  8 +--
 .../community/contribute-documentation.html.md  |  8 +--
 .../source/community/contribute-sdk.html.md     |  8 +--
 .../source/community/contribute-webhook.html.md |  8 +--
 docs/manual/source/community/index.html.md      |  8 +--
 docs/manual/source/community/projects.html.md   |  8 +--
 .../source/community/submit-template.html.md    |  8 +--
 docs/manual/source/customize/dase.html.md.erb   |  8 +--
 docs/manual/source/customize/index.html.md      |  8 +--
 .../source/customize/troubleshooting.html.md    |  8 +--
 .../datacollection/analytics-ipynb.html.md.erb  |  8 +--
 .../analytics-tableau.html.md.erb               |  8 +--
 .../analytics-zeppelin.html.md.erb              |  8 +--
 .../source/datacollection/analytics.html.md     |  8 +--
 .../source/datacollection/batchimport.html.md   |  8 +--
 .../source/datacollection/channel.html.md.erb   |  8 +--
 .../source/datacollection/eventapi.html.md      |  8 +--
 .../datacollection/eventmodel.html.md.erb       |  8 +--
 docs/manual/source/datacollection/index.html.md |  8 +--
 .../source/datacollection/webhooks.html.md.erb  |  8 +--
 docs/manual/source/demo/community.html.md       |  8 +--
 docs/manual/source/demo/index.html.md.erb       |  8 +--
 .../source/demo/supervisedlearning.html.md      | 16 ++---
 docs/manual/source/demo/tapster.html.md         |  8 +--
 .../source/demo/textclassification.html.md.erb  |  8 +--
 docs/manual/source/deploy/engineparams.html.md  |  8 +--
 .../manual/source/deploy/enginevariants.html.md |  8 +--
 docs/manual/source/deploy/index.html.md         |  8 +--
 docs/manual/source/deploy/monitoring.html.md    | 38 +++++------
 .../evaluation/evaluationdashboard.html.md      | 10 +--
 docs/manual/source/evaluation/index.html.md     | 18 +++--
 .../source/evaluation/metricbuild.html.md       | 41 ++++++-----
 .../source/evaluation/metricchoose.html.md      | 30 ++++----
 .../source/evaluation/paramtuning.html.md       | 72 ++++++++++----------
 docs/manual/source/github.html                  |  8 ++-
 docs/manual/source/index.html.md.erb            | 10 +--
 .../source/install/config-datastore.html.md     |  8 +--
 docs/manual/source/install/index.html.md.erb    |  8 +--
 .../source/install/install-linux.html.md.erb    |  8 +--
 .../install/install-sourcecode.html.md.erb      |  8 +--
 .../source/install/install-vagrant.html.md.erb  |  8 +--
 .../source/install/launch-aws.html.md.erb       | 10 +--
 .../dimensionalityreduction.html.md             |  8 +--
 .../machinelearning/modelingworkflow.html.md    | 12 ++--
 .../production/deploy-cloudformation.html.md    | 10 +--
 docs/manual/source/resources/faq.html.md        |  8 +--
 docs/manual/source/resources/glossary.html.md   |  8 +--
 .../source/resources/intellij.html.md.erb       | 15 ++--
 docs/manual/source/resources/upgrade.html.md    |  9 ++-
 docs/manual/source/robots.txt                   |  2 +-
 docs/manual/source/samples/index.html.md        |  8 +--
 docs/manual/source/samples/languages.html.md    | 10 +--
 docs/manual/source/samples/level-1.html.md      |  8 +--
 docs/manual/source/samples/level-2-1.html.md    |  8 +--
 docs/manual/source/samples/level-2-2.html.md    |  8 +--
 docs/manual/source/samples/level-2.html.md      |  8 +--
 docs/manual/source/samples/level-3-1.html.md    |  8 +--
 docs/manual/source/samples/level-3-2.html.md    |  8 +--
 docs/manual/source/samples/level-3.html.md      |  8 +--
 docs/manual/source/samples/level-4-1.html.md    |  8 +--
 docs/manual/source/samples/level-4-2.html.md    |  8 +--
 docs/manual/source/samples/level-4-3.html.md    |  8 +--
 docs/manual/source/samples/level-4.html.md      |  8 +--
 docs/manual/source/samples/narrow.html.md       | 12 ++--
 docs/manual/source/samples/sizing.html.md       | 12 ++--
 docs/manual/source/samples/tabs.html.md         | 16 ++---
 docs/manual/source/sdk/community.html.md        |  8 +--
 docs/manual/source/sdk/index.html.md            |  8 +--
 docs/manual/source/sdk/java.html.md.erb         |  8 +--
 docs/manual/source/sdk/php.html.md.erb          |  8 +--
 docs/manual/source/sdk/python.html.md.erb       |  8 +--
 docs/manual/source/sdk/ruby.html.md.erb         |  8 +--
 docs/manual/source/search/index.html.md         |  7 +-
 docs/manual/source/start/customize.html.md      | 12 ++--
 docs/manual/source/start/deploy.html.md.erb     |  8 +--
 docs/manual/source/start/download.html.md       |  8 +--
 docs/manual/source/start/index.html.md          |  8 +--
 docs/manual/source/support/index.html.md.erb    |  8 +--
 .../source/system/anotherdatastore.html.md      | 10 +--
 .../system/deploy-cloudformation.html.md.erb    |  8 +--
 docs/manual/source/system/index.html.md         | 12 ++--
 .../classification/add-algorithm.html.md        |  8 +--
 .../templates/classification/dase.html.md.erb   |  8 +--
 .../templates/classification/how-to.html.md     | 12 ++--
 .../classification/quickstart.html.md.erb       |  8 +--
 .../reading-custom-properties.html.md           |  8 +--
 .../complementarypurchase/dase.html.md.erb      |  8 +--
 .../quickstart.html.md.erb                      |  8 +--
 .../ecommercerecommendation/dase.html.md.erb    |  8 +--
 .../ecommercerecommendation/how-to.html.md      |  8 +--
 .../quickstart.html.md.erb                      |  8 +--
 .../train-with-rate-event.html.md.erb           |  8 +--
 .../dase.html.md.erb                            |  8 +--
 .../quickstart.html.md.erb                      |  8 +--
 .../templates/leadscoring/dase.html.md.erb      |  8 +--
 .../leadscoring/quickstart.html.md.erb          |  8 +--
 .../templates/productranking/dase.html.md.erb   |  8 +--
 .../productranking/quickstart.html.md.erb       |  8 +--
 .../recommendation/batch-evaluator.html.md      |  8 +--
 .../recommendation/blacklist-items.html.md      |  8 +--
 .../recommendation/customize-data-prep.html.md  |  9 ++-
 .../recommendation/customize-serving.html.md    |  8 +--
 .../templates/recommendation/dase.html.md.erb   | 10 +--
 .../recommendation/evaluation.html.md.erb       |  8 +--
 .../templates/recommendation/how-to.html.md     | 12 ++--
 .../recommendation/quickstart.html.md.erb       |  8 +--
 .../reading-custom-events.html.md               |  8 +--
 .../training-with-implicit-preference.html.md   |  8 +--
 .../templates/similarproduct/dase.html.md.erb   |  8 +--
 .../templates/similarproduct/how-to.html.md     | 12 ++--
 .../multi-events-multi-algos.html.md.erb        |  8 +--
 .../similarproduct/quickstart.html.md.erb       |  8 +--
 .../source/templates/vanilla/dase.html.md.erb   |  9 ++-
 .../templates/vanilla/quickstart.html.md.erb    |  8 +--
 121 files changed, 596 insertions(+), 601 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/404.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/404.html.md b/docs/manual/source/404.html.md
index a8a3254..5578573 100644
--- a/docs/manual/source/404.html.md
+++ b/docs/manual/source/404.html.md
@@ -1,3 +1,8 @@
+---
+title: Error 404
+description: Page not found!
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +20,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Error 404
-description: Page not found!
----
-
 # Page Not Found
 
-Sorry the page you were looking for was not found :(
\ No newline at end of file
+Sorry the page you were looking for was not found :(

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/algorithm/custom.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/algorithm/custom.html.md b/docs/manual/source/algorithm/custom.html.md
index dc7d9c8..790c4b5 100644
--- a/docs/manual/source/algorithm/custom.html.md
+++ b/docs/manual/source/algorithm/custom.html.md
@@ -1,3 +1,7 @@
+---
+title: Adding your own Algorithms
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Adding your own Algorithms
----
-
 (Coming soon)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/algorithm/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/algorithm/index.html.md b/docs/manual/source/algorithm/index.html.md
index 2fc2b8a..49163a3 100644
--- a/docs/manual/source/algorithm/index.html.md
+++ b/docs/manual/source/algorithm/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Built-in Algorithm Libraries
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Built-in Algorithm Libraries
----
-
 An engine can virtually call any algorithm in the Algorithm class. Apache
 PredictionIO (incubating) currently offers native support to [Spark
 MLlib](http://spark.apache.org/docs/latest/mllib-guide.html) machine learning

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/algorithm/multiple.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/algorithm/multiple.html.md b/docs/manual/source/algorithm/multiple.html.md
index ee3c460..1383798 100644
--- a/docs/manual/source/algorithm/multiple.html.md
+++ b/docs/manual/source/algorithm/multiple.html.md
@@ -1,3 +1,7 @@
+---
+title: Combining Multiple Algorithms
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,14 +19,9 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Combining Multiple Algorithms
----
 
 You can use more than one algorithm to build multiple models in an engine. The predicted results can be combined in the Serving class.
 
 Here are some How-to examples:
 
 * [Similar Product template - Multiple Events and Multiple Algorithms](/templates/similarproduct/multi-events-multi-algos/)
-
-

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/algorithm/switch.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/algorithm/switch.html.md b/docs/manual/source/algorithm/switch.html.md
index 45505dd..d44ada3 100644
--- a/docs/manual/source/algorithm/switch.html.md
+++ b/docs/manual/source/algorithm/switch.html.md
@@ -1,3 +1,7 @@
+---
+title: Switching to Another Algorithm
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Switching to Another Algorithm
----
-
 Every engine template comes with default algorithm(s). To switch to another algorithm, you simply need to modify the Algorithm class.
 
 Here are some How-to examples:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/appintegration/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/appintegration/index.html.md b/docs/manual/source/appintegration/index.html.md
index 8e11360..e22aff8 100644
--- a/docs/manual/source/appintegration/index.html.md
+++ b/docs/manual/source/appintegration/index.html.md
@@ -1,3 +1,7 @@
+---
+title: App Integration Overview
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: App Integration Overview
----
-
 Apache PredictionIO (incubating) is designed as a machine learning server that
 integrates with your applications on production environments.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/cli/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/cli/index.html.md b/docs/manual/source/cli/index.html.md
index b9d0ce9..e4927fd 100644
--- a/docs/manual/source/cli/index.html.md
+++ b/docs/manual/source/cli/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Command Line
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Command Line
----
-
 ##Overview
 
 Interaction with Apache PredictionIO (incubating) is done through the command

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/contribute-code.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/contribute-code.html.md b/docs/manual/source/community/contribute-code.html.md
index 9430b2b..0d4b3fd 100644
--- a/docs/manual/source/community/contribute-code.html.md
+++ b/docs/manual/source/community/contribute-code.html.md
@@ -1,3 +1,7 @@
+---
+title: Contribute Code
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title:  Contribute Code
----
-
 Thank you for your interest in contributing to Apache PredictionIO (incubating).
 Our mission is to enable developers to build scalable machine learning
 applications easily. Here is how you can help with the project development. If

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/contribute-documentation.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/contribute-documentation.html.md b/docs/manual/source/community/contribute-documentation.html.md
index ddda3f4..ae55a29 100644
--- a/docs/manual/source/community/contribute-documentation.html.md
+++ b/docs/manual/source/community/contribute-documentation.html.md
@@ -1,3 +1,7 @@
+---
+title: Contribute Documentation
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Contribute Documentation
----
-
 ## How to Write Documentation
 
 You can help improve the Apache PredictionIO (incubating) documentation by

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/contribute-sdk.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/contribute-sdk.html.md b/docs/manual/source/community/contribute-sdk.html.md
index d14b8f9..4ee5d31 100644
--- a/docs/manual/source/community/contribute-sdk.html.md
+++ b/docs/manual/source/community/contribute-sdk.html.md
@@ -1,3 +1,7 @@
+---
+title:  Contribute a SDK
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title:  Contribute a SDK
----
-
 A SDK should provide convenient methods for client applications to easily
 record users' behaviors in Apache PredictionIO (incubating)'s Event Server and
 also query recommendations from the ML Engines. Therefore, a SDK typically has 2

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/contribute-webhook.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/contribute-webhook.html.md b/docs/manual/source/community/contribute-webhook.html.md
index 3367104..6eb70bc 100644
--- a/docs/manual/source/community/contribute-webhook.html.md
+++ b/docs/manual/source/community/contribute-webhook.html.md
@@ -1,3 +1,7 @@
+---
+title:  Contribute a Webhooks Connector
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title:  Contribute a Webhooks Connector
----
-
 NOTE: Please check out the [latest develop
 branch](https://github.com/apache/incubator-predictionio).
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/index.html.md b/docs/manual/source/community/index.html.md
index 846b695..5d48ef9 100644
--- a/docs/manual/source/community/index.html.md
+++ b/docs/manual/source/community/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Community Page
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Community Page
----
-
 ## User Mailing List
 
 This list is for users of Apache PredictionIO (incubating) to ask questions,

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/projects.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/projects.html.md b/docs/manual/source/community/projects.html.md
index ac518a3..00f88a9 100644
--- a/docs/manual/source/community/projects.html.md
+++ b/docs/manual/source/community/projects.html.md
@@ -1,3 +1,7 @@
+---
+title: Community Powered Projects
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Community Powered Projects
----
-
 Here you will find great projects contributed by the Apache PredictionIO
 (incubating) community. Stay tuned.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/community/submit-template.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/community/submit-template.html.md b/docs/manual/source/community/submit-template.html.md
index 19cf64a..14868e1 100644
--- a/docs/manual/source/community/submit-template.html.md
+++ b/docs/manual/source/community/submit-template.html.md
@@ -1,3 +1,7 @@
+---
+title: Submitting a Template to Template Gallery
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title:  Submitting a Template to Template Gallery
----
-
 ## Template Guidelines
 
 - Please give your template and GitHub repo a meaningful name (for example, My-MLlibKMeansClustering-Template).

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/customize/dase.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/customize/dase.html.md.erb b/docs/manual/source/customize/dase.html.md.erb
index 5b2f55b..419abb9 100644
--- a/docs/manual/source/customize/dase.html.md.erb
+++ b/docs/manual/source/customize/dase.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Implementing DASE
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Implementing DASE
----
-
 This section gives you an overview of DASE components and how to implement them. You will find links to some engine templates for more concrete examples.
 
 # DataSource

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/customize/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/customize/index.html.md b/docs/manual/source/customize/index.html.md
index 5399a15..5f36ddb 100644
--- a/docs/manual/source/customize/index.html.md
+++ b/docs/manual/source/customize/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Learning DASE
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Learning DASE
----
-
 The code of an engine consists of D-A-S-E components:
 
 ### [D] Data Source and Data Preparator

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/customize/troubleshooting.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/customize/troubleshooting.html.md b/docs/manual/source/customize/troubleshooting.html.md
index ae7b6e9..68717ba 100644
--- a/docs/manual/source/customize/troubleshooting.html.md
+++ b/docs/manual/source/customize/troubleshooting.html.md
@@ -1,3 +1,7 @@
+---
+title: Engine Development - Troubleshoot
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Engine Development - Troubleshoot
----
-
 Apache PredictionIO (incubating) provides the following features to help you
 debug engines during development cycle.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/analytics-ipynb.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/analytics-ipynb.html.md.erb b/docs/manual/source/datacollection/analytics-ipynb.html.md.erb
index f5083bd..bcf41a3 100644
--- a/docs/manual/source/datacollection/analytics-ipynb.html.md.erb
+++ b/docs/manual/source/datacollection/analytics-ipynb.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Machine Learning Analytics with IPython Notebook
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Machine Learning Analytics with IPython Notebook
----
-
 [IPython Notebook](http://ipython.org/notebook.html) is a very powerful
 interactive computational environment, and with
 [Apache PredictionIO (incubating)](http://predictionio.incubator.apache.org),

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/analytics-tableau.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/analytics-tableau.html.md.erb b/docs/manual/source/datacollection/analytics-tableau.html.md.erb
index 6589421..f3e2397 100644
--- a/docs/manual/source/datacollection/analytics-tableau.html.md.erb
+++ b/docs/manual/source/datacollection/analytics-tableau.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Machine Learning Analytics with Tableau
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Machine Learning Analytics with Tableau
----
-
 With Spark SQL, it is possible to connect Tableau to Apache PredictionIO
 (incubating) Event Server for interactive analysis of event data.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/analytics-zeppelin.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/analytics-zeppelin.html.md.erb b/docs/manual/source/datacollection/analytics-zeppelin.html.md.erb
index ace7ac7..1d6e39c 100644
--- a/docs/manual/source/datacollection/analytics-zeppelin.html.md.erb
+++ b/docs/manual/source/datacollection/analytics-zeppelin.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Machine Learning Analytics with Zeppelin
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Machine Learning Analytics with Zeppelin
----
-
 [Apache Zeppelin](http://zeppelin-project.org/) is an interactive computational
 environment built on Apache Spark like the IPython Notebook. With [Apache
 PredictionIO (incubating)](http://predictionio.incubator.apache.org) and [Spark

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/analytics.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/analytics.html.md b/docs/manual/source/datacollection/analytics.html.md
index 7840337..5a87409 100644
--- a/docs/manual/source/datacollection/analytics.html.md
+++ b/docs/manual/source/datacollection/analytics.html.md
@@ -1,3 +1,7 @@
+---
+title: Using Analytics Tools
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Using Analytics Tools
----
-
 Event Server collects and unifies data for your application from multiple channels.
 
 Data can be exported to Apache parquet format with `pio export` for fast analysis. The following analytics tools are currently supported:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/batchimport.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/batchimport.html.md b/docs/manual/source/datacollection/batchimport.html.md
index f1880de..cb81812 100644
--- a/docs/manual/source/datacollection/batchimport.html.md
+++ b/docs/manual/source/datacollection/batchimport.html.md
@@ -1,3 +1,7 @@
+---
+title: Importing Data in Batch
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Importing Data in Batch
----
-
 If you have a large amount of data to start with, performing batch import will
 be much faster than sending every event over an HTTP connection.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/channel.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/channel.html.md.erb b/docs/manual/source/datacollection/channel.html.md.erb
index 697dc39..c8494ca 100644
--- a/docs/manual/source/datacollection/channel.html.md.erb
+++ b/docs/manual/source/datacollection/channel.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Channel
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Channel
----
-
 Each App has a default channel (without name) which stores all incoming events.
 This "default" one is used when channel is not specified.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/eventapi.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/eventapi.html.md b/docs/manual/source/datacollection/eventapi.html.md
index 7375bf9..ca64812 100644
--- a/docs/manual/source/datacollection/eventapi.html.md
+++ b/docs/manual/source/datacollection/eventapi.html.md
@@ -1,3 +1,7 @@
+---
+title: Collecting Data through REST/SDKs
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Collecting Data through REST/SDKs
----
-
 **Event Server** is designed to collect data into Apache PredictionIO
 (incubating) in an event-based style. Once the Event Server is launched, your
 application can send data to it through its **Event API** with HTTP requests or

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/eventmodel.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/eventmodel.html.md.erb b/docs/manual/source/datacollection/eventmodel.html.md.erb
index 03c651f..c89f0be 100644
--- a/docs/manual/source/datacollection/eventmodel.html.md.erb
+++ b/docs/manual/source/datacollection/eventmodel.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Events Modeling
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Events Modeling
----
-
 This section explains how to model your application data as events.
 
 **Entity**: it's the real world object involved in the events. The entity may perform the events, or interact with other entity (which became `targetEntity` in an event).

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/index.html.md b/docs/manual/source/datacollection/index.html.md
index 8cecadd..ecac173 100644
--- a/docs/manual/source/datacollection/index.html.md
+++ b/docs/manual/source/datacollection/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Event Server Overview
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Event Server Overview
----
-
 Apache PredictionIO (incubating) offers an Event Server that collects data in an
 event-based style via a RESTful API. By default, Event Server uses Apache HBase
 as data store.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/datacollection/webhooks.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/datacollection/webhooks.html.md.erb b/docs/manual/source/datacollection/webhooks.html.md.erb
index df594bf..f255a8a 100644
--- a/docs/manual/source/datacollection/webhooks.html.md.erb
+++ b/docs/manual/source/datacollection/webhooks.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Unifying Multichannel Data with Webhooks
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Unifying Multichannel Data with Webhooks
----
-
 Webhooks are used to collects data for your application from multiple channels automatically.
 
 Apache PredictionIO (incubating) offers webhooks for Segment.io and MailChimp

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/demo/community.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/community.html.md b/docs/manual/source/demo/community.html.md
index c09c12a..ece646f 100644
--- a/docs/manual/source/demo/community.html.md
+++ b/docs/manual/source/demo/community.html.md
@@ -1,3 +1,7 @@
+---
+title: Demo Tutorials with Apache PredictionIO (incubating)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Demo Tutorials with Apache PredictionIO (incubating)
----
-
 Here is a list of demo tutorials for Apache PredictionIO (incubating).
 
 INFO: If you want to showcase your demo app here, simply edit [this

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/demo/index.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/index.html.md.erb b/docs/manual/source/demo/index.html.md.erb
index d669e2f..533c845 100644
--- a/docs/manual/source/demo/index.html.md.erb
+++ b/docs/manual/source/demo/index.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Demos
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Demos
----
-
 ## Current Demos
 
 [Tapster](/demo/tapster/) - A Tinder like Rails application using Apache

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/demo/supervisedlearning.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/supervisedlearning.html.md b/docs/manual/source/demo/supervisedlearning.html.md
index fe5625e..7825ed9 100644
--- a/docs/manual/source/demo/supervisedlearning.html.md
+++ b/docs/manual/source/demo/supervisedlearning.html.md
@@ -1,3 +1,7 @@
+---
+title: Machine Learning With PredictionIO
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Machine Learning With PredictionIO 
----
-
-This guide is designed to give developers a brief introduction to fundamental concepts in machine learning, as well as an explanation of how these concept tie into PredictionIO's engine development platform. This particular guide will largely deal with giving some 
+This guide is designed to give developers a brief introduction to fundamental concepts in machine learning, as well as an explanation of how these concept tie into PredictionIO's engine development platform. This particular guide will largely deal with giving some
 
 ## Introduction to Supervised Learning
 
@@ -33,9 +33,9 @@ The first question we must ask is: what is machine learning? **Machine learning*
 
 ### Thinking About Data
 
-In the latter examples, we are trying to predict an outcome \\(Y\\), or **response**, based on some recorded or observed variables \\(X\\), or **features**. For example: in the third problem each observation is a patient, the response variable \\(Y\\) is equal to 1 if this patient has breast cancer and 0 otherwise, and \\(X\\) represents the mammogram results. 
+In the latter examples, we are trying to predict an outcome \\(Y\\), or **response**, based on some recorded or observed variables \\(X\\), or **features**. For example: in the third problem each observation is a patient, the response variable \\(Y\\) is equal to 1 if this patient has breast cancer and 0 otherwise, and \\(X\\) represents the mammogram results.
 
-When we say we want to predict \\(Y\\) using \\(X\\), we are trying to answer the question: how does a response \\(Y\\) depend on a set of features \\(X\\) affect the response \\(Y\\)? To do this we need a set of observations, which we call our **training data**, consisting of observations for which we have observed both \\(Y\\) and \\(X\\), in order to make inference about this relationship. 
+When we say we want to predict \\(Y\\) using \\(X\\), we are trying to answer the question: how does a response \\(Y\\) depend on a set of features \\(X\\) affect the response \\(Y\\)? To do this we need a set of observations, which we call our **training data**, consisting of observations for which we have observed both \\(Y\\) and \\(X\\), in order to make inference about this relationship.
 
 ### Different Types of Supervised Learning Problems
 
@@ -47,7 +47,7 @@ A predictive model should be thought of as a function \\(f\\) that takes as inpu
 
 ## PredictionIO and Supervised Learning
 
-Machine learning methods generally assume that our observation responses and features are numeric vectors. We will say that observations in this format are in **standard form**. However, when you are working with real-life data this will often not be the case. The data will often be formatted in a manner that is specific to the application's needs. As an example, let's suppose our application is [StackOverFlow](http://stackoverflow.com). The data we want to analyze are questions, and we want to predict based on a question's content whether or not it is related to Scala. 
+Machine learning methods generally assume that our observation responses and features are numeric vectors. We will say that observations in this format are in **standard form**. However, when you are working with real-life data this will often not be the case. The data will often be formatted in a manner that is specific to the application's needs. As an example, let's suppose our application is [StackOverFlow](http://stackoverflow.com). The data we want to analyze are questions, and we want to predict based on a question's content whether or not it is related to Scala.
 
 
 **Self-check:**   Is this a classification or regression problem?

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/demo/tapster.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/tapster.html.md b/docs/manual/source/demo/tapster.html.md
index a67e87e..97ec7f8 100644
--- a/docs/manual/source/demo/tapster.html.md
+++ b/docs/manual/source/demo/tapster.html.md
@@ -1,3 +1,7 @@
+---
+title: Comics Recommendation Demo
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Comics Recommendation Demo
----
-
 ## Introduction
 
 In this demo, we will show you how to build a Tinder-style web application (named "Tapster") recommending comics to users based on their likes/dislikes of episodes interactively.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/demo/textclassification.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/demo/textclassification.html.md.erb b/docs/manual/source/demo/textclassification.html.md.erb
index 59e3174..cacc2f4 100644
--- a/docs/manual/source/demo/textclassification.html.md.erb
+++ b/docs/manual/source/demo/textclassification.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Text Classification Engine Tutorial
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Text Classification Engine Tutorial
----
-
 (Updated for Text Classification Template version 3.1)
 
 ## Introduction

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/deploy/engineparams.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/deploy/engineparams.html.md b/docs/manual/source/deploy/engineparams.html.md
index 27f89c7..770808e 100644
--- a/docs/manual/source/deploy/engineparams.html.md
+++ b/docs/manual/source/deploy/engineparams.html.md
@@ -1,3 +1,7 @@
+---
+title: Setting Engine Parameters
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Setting Engine Parameters
----
-
 (coming soon)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/deploy/enginevariants.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/deploy/enginevariants.html.md b/docs/manual/source/deploy/enginevariants.html.md
index cc01c97..2778487 100644
--- a/docs/manual/source/deploy/enginevariants.html.md
+++ b/docs/manual/source/deploy/enginevariants.html.md
@@ -1,3 +1,7 @@
+---
+title: Deploying Multiple Engine Variants
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +19,4 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Deploying Multiple Engine Variants
----
-
 (coming soon)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/deploy/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/deploy/index.html.md b/docs/manual/source/deploy/index.html.md
index 8ecd32b..0533dbd 100644
--- a/docs/manual/source/deploy/index.html.md
+++ b/docs/manual/source/deploy/index.html.md
@@ -1,3 +1,7 @@
+---
+title: Deploying an Engine
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Deploying an Engine
----
-
 An engine must be **built** (i.e. `pio build`) and **trained** (i.e. `pio
 train`)  before it can be deployed as a web service.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/deploy/monitoring.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/deploy/monitoring.html.md b/docs/manual/source/deploy/monitoring.html.md
index 1d13141..0be7589 100644
--- a/docs/manual/source/deploy/monitoring.html.md
+++ b/docs/manual/source/deploy/monitoring.html.md
@@ -1,3 +1,7 @@
+---
+title: Monitoring an Engine
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Monitoring an Engine
----
-
 If you're using PredictionIO in a production setting, you'll want some way to make sure it is always up. [Monit](https://mmonit.com/monit/) is a tool which will monitor important processes and programs. This guide will show how to set up monit on your PredictionIO server to keep an engine always up and running.
 
 You can install monit on ubuntu with
@@ -36,10 +36,10 @@ First, choose the interval on which you want monit to check the status of your s
 set daemon 60 #checks at 1-minute intervals
 ```
 
-The `check system` block should also already be present, under the services block. 
+The `check system` block should also already be present, under the services block.
 
 ```
-  check system 127.0.0.1 
+  check system 127.0.0.1
     if memory usage > 75% then alert
     if swap usage > 25% then alert
     if loadavg (1min) > 4 then alert
@@ -57,10 +57,10 @@ set httpd port 2812
 ```
 More examples on configuring the web server are included in the default config file.
 
-Configuration blocks for common services like apache, nginx, or PostgreSQL can be found [here](http://www.stuartellis.eu/articles/monit/) 
+Configuration blocks for common services like apache, nginx, or PostgreSQL can be found [here](http://www.stuartellis.eu/articles/monit/)
 
 ##Configure for PredictionIO
-###Event Server 
+###Event Server
 Now the interesting stuff, lets add monitoring for the event server.
 
 ```     
@@ -70,7 +70,7 @@ check process eventserver
         stop program = "/etc/monit/modebug /home/ubuntu/event_scripts.sh stop"
         if cpu usage > 95% for 10 cycles then restart
 ```
-This block references a script, event_scripts.sh. This script tell monit how to restart the engine and event server if they go down. 
+This block references a script, event_scripts.sh. This script tell monit how to restart the engine and event server if they go down.
 
 The script might differ slightly depending on your environment but it should look something like what is shown below. Assume SimilarProduct is the your pio app directory.
 
@@ -81,18 +81,18 @@ The script might differ slightly depending on your environment but it should loo
        cd /home/ubuntu/SimilarProduct/
        nohup /opt/PredictionIO/bin/pio eventserver > /home/ubuntu/events.log &
        ;;
-     stop) 
+     stop)
        event_pid=`pgrep -f "Console eventserver"`
        kill "$event_pid"
        ;;
-     *) 
+     *)
  esac
  exit 0
-``` 
+```
 Note that this is dumping output to an events log at `/home/ubuntu/events.log`. Also, be sure that this file is executable with `sudo chmod +x event_scripts.sh`
 
 ###Engine
-The first step here is similar to checking the engine process. 
+The first step here is similar to checking the engine process.
 
 ```
 check process pioengine
@@ -110,18 +110,18 @@ Be sure to adjust your deploy command to your environment (driver-memry, postgre
        cd /home/ubuntu/SimilarProduct/
        nohup /opt/PredictionIO/bin/pio deploy -- --driver-class-path /home/ubuntu/postgresql-9.4.1208.jre6.jar --driver-memory 16G > /home/ubuntu/deploy.log &
        ;;
-     stop) 
+     stop)
        deploy_pid=`pgrep -f "Console deploy"`
        kill "$deploy_pid"
        ;;
-     *) 
+     *)
  esac
  exit 0
 ```
 
-There can be  cases when the process is running but the engine is down however. If the spray REST API used by PredictionIO crashes, the engine process continues but the engine to fail when queried. 
+There can be  cases when the process is running but the engine is down however. If the spray REST API used by PredictionIO crashes, the engine process continues but the engine to fail when queried.
 
-This sort of crash can be taken care of by using monits `check program` capability. 
+This sort of crash can be taken care of by using monits `check program` capability.
 
 ```
 check program pioengine-http with path "/etc/monit/bin/check_engine.sh"
@@ -130,7 +130,7 @@ check program pioengine-http with path "/etc/monit/bin/check_engine.sh"
 	if status != 1
 	then restart
 ```
-This block executes the script at /etc/monit/bin/check_engine.sh and reads the exit status. Depending on the exit status, the block can run a restart script. The restart script can be the same as what is used in the process monitor, but we need a check_engine script. 
+This block executes the script at /etc/monit/bin/check_engine.sh and reads the exit status. Depending on the exit status, the block can run a restart script. The restart script can be the same as what is used in the process monitor, but we need a check_engine script.
 
 ```bash
 #!/bin/bash
@@ -146,7 +146,7 @@ else
   exit 0
 fi
 ```
-This script does a curl request and checks the response. In this example, a user known to  exist is used and then check  make sure the json returned has "itemScores". This can vary between use cases but the idea should be similar. 
+This script does a curl request and checks the response. In this example, a user known to  exist is used and then check  make sure the json returned has "itemScores". This can vary between use cases but the idea should be similar.
 
 Again, make sure this file is executable.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/evaluation/evaluationdashboard.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/evaluation/evaluationdashboard.html.md b/docs/manual/source/evaluation/evaluationdashboard.html.md
index bf5f702..05950c4 100644
--- a/docs/manual/source/evaluation/evaluationdashboard.html.md
+++ b/docs/manual/source/evaluation/evaluationdashboard.html.md
@@ -1,3 +1,7 @@
+---
+title: Evaluation Dashboard
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Evaluation Dashboard
----
-
 WARNING: This is an experimental development tool, which exposes environment variables and other sensitive information about the PredictionIO application (e.g. storage configs, credentials etc.). It is not recommended to be run in production.
 
 PredictionIO provides a web dashboard which allows you to see previous
@@ -37,4 +37,4 @@ order. A high level description of each evaluation can be seen directly from the
 dashboard. We can also click on the *HTML* button to see the evaluation drill
 down page.
 
-*Note:* The dashboard server has SSL enabled and is authenticated by a key passed as a query string param `accessKey`. The configuration is in `conf/server.conf`
\ No newline at end of file
+*Note:* The dashboard server has SSL enabled and is authenticated by a key passed as a query string param `accessKey`. The configuration is in `conf/server.conf`

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/evaluation/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/evaluation/index.html.md b/docs/manual/source/evaluation/index.html.md
index c90a1da..66943e1 100644
--- a/docs/manual/source/evaluation/index.html.md
+++ b/docs/manual/source/evaluation/index.html.md
@@ -1,3 +1,7 @@
+---
+title: ML Tuning and Evaluation
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: ML Tuning and Evaluation
----
-
 PredictionIO's evaluation module allows you to streamline the process of
 testing lots of knobs in engine parameters and deploy the best one out
 of it using statisically sound cross-validation methods.
@@ -27,16 +27,16 @@ There are two key components:
 
 ### Engine
 
-It is our evaluation target. During evaluation, in addition to 
+It is our evaluation target. During evaluation, in addition to
 the *train* and *deploy* mode we describe in earlier sections,
-the engine also generates a list of testing data points. These data 
+the engine also generates a list of testing data points. These data
 points are a sequence of *Query* and *Actual Result* tuples. *Queries* are
-sent to the engine and the engine responds with a *Predicted Result*, 
+sent to the engine and the engine responds with a *Predicted Result*,
 in the same way as how the engine serves a query.
 
 ### Evaluator
 
-The evaluator joins the sequence of *Query*, *Predicted Result*, and *Actual Result* 
+The evaluator joins the sequence of *Query*, *Predicted Result*, and *Actual Result*
 together and evaluates the quality of the engine.
 PredictionIO enables you to implement any metric with just a few lines of code.
 
@@ -54,5 +54,3 @@ We will discuss various aspects of evaluation with PredictionIO.
 - [Bulding Evaluation Metrics](/evaluation/metricbuild/) - we illustrate how to
   implement a custom metric with as few as one line of code (plus some
   boilerplates).
-
-

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/evaluation/metricbuild.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/evaluation/metricbuild.html.md b/docs/manual/source/evaluation/metricbuild.html.md
index 2082827..ad9d105 100644
--- a/docs/manual/source/evaluation/metricbuild.html.md
+++ b/docs/manual/source/evaluation/metricbuild.html.md
@@ -1,3 +1,7 @@
+---
+title: Building Evaluation Metrics
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,33 +19,29 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Building Evaluation Metrics
----
-
-PredictionIO enables developer to implement evaluation custom evaluation 
-metric with just a few lines of code. 
+PredictionIO enables developer to implement evaluation custom evaluation
+metric with just a few lines of code.
 We illustrate it with [the classification
 template](/templates/classification/quickstart/).
 
 ## Overview
 
-A simplistic form of metric is a function which takes a 
+A simplistic form of metric is a function which takes a
 `(Query, PredictedResult, ActualResult)`-tuple (*QPA-tuple*) as input
-and return a score. 
+and return a score.
 Exploiting this properties allows us to implement custom metric with a single
 line of code (plus some boilerplates). We demonstate this with two metrics:
 accuracy and precision.
 
 <!--
-(Note: This simple form may not be able to handle metrics which require 
+(Note: This simple form may not be able to handle metrics which require
 multi-stage computation, for example root-mean-square-error.)
 -->
 
 
 ## Example 1: Accuracy Metric
 
-Accuracy is a metric capturing 
+Accuracy is a metric capturing
 the portion of correct prediction among all test data points. A way
 to model this is for each correct QPA-tuple, we give a score of 1.0 and
 otherwise 0.0, then we take an average of all tuple scores.
@@ -56,19 +56,19 @@ Line 5 below is the custom calculation.
 case class Accuracy
   extends AverageMetric[EmptyEvaluationInfo, Query, PredictedResult, ActualResult] {
   def calculate(query: Query, predicted: PredictedResult, actual: ActualResult)
-  : Double = 
+  : Double =
     (if (predicted.label == actual.label) 1.0 else 0.0)
 }
 ```
 
-Once we define a metric, we tell PredictionIO we are using it in the `Evaluation` 
+Once we define a metric, we tell PredictionIO we are using it in the `Evaluation`
 object. We can run the following command to kick start the evaluation.
 
 ```
 $ pio build
 ...
 $ pio eval org.template.classification.AccuracyEvaluation \
-    org.template.classification.EngineParamsList 
+    org.template.classification.EngineParamsList
 ...
 ```
 
@@ -77,8 +77,8 @@ $ pio eval org.template.classification.AccuracyEvaluation \
 
 ## Example 2: Precision Metric
 
-Precision is a metric for binary classifier 
-capturing the portion of correction prediction among 
+Precision is a metric for binary classifier
+capturing the portion of correction prediction among
 all *positive* predictions.
 We don't care about the cases where the QPA-tuple gives a negative prediction.
 (Recall that a binary classifier only provide two output values: *positive* and
@@ -88,7 +88,7 @@ The following table illustrates all four cases:
 | PredictedResult | ActualResult | Value |
 | :----: | :----: | :----: |
 | Positive | Positive | 1.0 |
-| Positive | Negative | 0.0 | 
+| Positive | Negative | 0.0 |
 | Negative | Positive | Don't care |
 | Negative | Negative | Don't care |
 
@@ -101,7 +101,7 @@ specify *don't care* values as `None`. It only aggregates the non-None values.
 Lines 3 to 4 is the method signature of `calcuate` method. The key difference
 is that the return value is a `Option[Double]`, in contrast to `Double` for
 `AverageMetric`. This class only computes the average of `Some(.)` results.
-Lines 5 to 13 are the actual logic. The first `if` factors out the 
+Lines 5 to 13 are the actual logic. The first `if` factors out the
 positively predicted case, and the computation is simliar to the accuracy
 metric. The negatively predicted case are the *don't cares*, which we return
 `None`.
@@ -141,7 +141,7 @@ separation of concern when we conduct hyperparameter tuning.
 $ pio build
 ...
 $ pio eval org.template.classification.PrecisionEvaluation \
-    org.template.classification.EngineParamsList 
+    org.template.classification.EngineParamsList
 ...
 [INFO] [CoreWorkflow$] Starting evaluation instance ID: SMhzYbJ9QgKkD0fQzTA7MA
 ...
@@ -166,7 +166,7 @@ Optimal Engine Params:
   },
   "preparatorParams":{
     "":{
-      
+
     }
   },
   "algorithmParamsList":[
@@ -178,7 +178,7 @@ Optimal Engine Params:
   ],
   "servingParams":{
     "":{
-      
+
     }
   }
 }
@@ -188,4 +188,3 @@ Metrics:
 
 (See MyClassification/src/main/scala/***PrecisionEvaluation.scala*** for
 the full usage.)
-

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/evaluation/metricchoose.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/evaluation/metricchoose.html.md b/docs/manual/source/evaluation/metricchoose.html.md
index a2815be..90f478e 100644
--- a/docs/manual/source/evaluation/metricchoose.html.md
+++ b/docs/manual/source/evaluation/metricchoose.html.md
@@ -1,3 +1,7 @@
+---
+title: Choosing Evaluation Metrics
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,30 +19,26 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Choosing Evaluation Metrics
----
-
 The [hyperparameter tuning module](/evaluation/paramtuning/) allows us to select
 the optimal engine parameter defined by a `Metric`.
-`Metric` determines the quality of an engine variant. 
+`Metric` determines the quality of an engine variant.
 We have skimmmed through the process of choosing the right `Metric` in previous
 sections.
 
-This secion discusses basic evaluation metrics commonly used for 
+This secion discusses basic evaluation metrics commonly used for
 classification problems.
 If you are more interested in knowing how to *implement* a custom metric, please
 skip to [the next section](/evaluation/metricbuild/).
 
 ## Defining Metric
 
-Metric evaluates the quality of an engine by comparing engine's output 
+Metric evaluates the quality of an engine by comparing engine's output
 (predicted result) with the original label (actual result).
-A engine serving better prediction should yield a higher metric score, 
+A engine serving better prediction should yield a higher metric score,
 the tuning module returns the engine parameter with the highest score.
 It is sometimes called [*loss
 function*](http://en.wikipedia.org/wiki/Loss_function) in literature, where the
-goal is to minimize the loss function. 
+goal is to minimize the loss function.
 
 During tuning, it is important for us to understand the definition of the
 metric, to make sure it is aligned with the prediction engine's goal.
@@ -46,14 +46,14 @@ metric, to make sure it is aligned with the prediction engine's goal.
 In the classificaiton template, we use *Accuracy* as our metric.
 *Accuracy* is defined as:
 the percentage
-of queries which the engine is able to predict the correct label. 
+of queries which the engine is able to predict the correct label.
 
 ## Common Metrics
 
 We illustrate the choice of metric with the following confusion matrix. Row
 represents the engine predicted label, column represents the acutal label.
 The second row means that of the 200 testing data points,
-the engine predicted 60 (15 + 35 + 10) of them as label 2.0, 
+the engine predicted 60 (15 + 35 + 10) of them as label 2.0,
 among which 35 are correct prediction (i.e. actual label is 2.0, matches with
 the prediction), and 25 are wrong.
 
@@ -65,7 +65,7 @@ the prediction), and 25 are wrong.
 
 ### Accuracy
 
-Accuracy means that how many data points are predicted correctly. 
+Accuracy means that how many data points are predicted correctly.
 It is one of the simplest form of evaluation metrics.
 The accuracy score is # of correct points / # total = (30 + 35 + 50) / 200 =
 0.575.
@@ -77,7 +77,7 @@ which measures the correctness among all positive labels.
 A binary classifier gives only two
 output values (i.e. positive and negative).
 For problem where there are multiple values (3 in our example),
-we first have to tranform our problem into 
+we first have to tranform our problem into
 a binary classification problem. For example, we can have problem whether
 label = 1.0. The confusion matrix now becomes:
 
@@ -86,8 +86,8 @@ label = 1.0. The confusion matrix now becomes:
 | **Predicted = 1.0** | 30 |  60 |
 | **Predicted != 1.0** | 15 | 95 |
 
-Precision is the ratio between the number of correct positive answer 
-(true positive) 
+Precision is the ratio between the number of correct positive answer
+(true positive)
 and the sum of correct positive answer (true positive) and wrong but positively
 labeled answer (false positive). In this case, the precision is 30 / (30 + 60) =
 ~0.3333.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/evaluation/paramtuning.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/evaluation/paramtuning.html.md b/docs/manual/source/evaluation/paramtuning.html.md
index b92f5b2..e360750 100644
--- a/docs/manual/source/evaluation/paramtuning.html.md
+++ b/docs/manual/source/evaluation/paramtuning.html.md
@@ -1,3 +1,7 @@
+---
+title: Hyperparameter Tuning
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Hyperparameter Tuning
----
-
 A PredictionIO engine is instantiated by a set of parameters. These parameters
 define which algorithm is to be used, as well supply the parameters for the algorithm itself. This naturally raises the question of how to choose the best set of parameters.
 The evaluation module streamlines the process of *tuning* the engine to the best
@@ -34,7 +34,7 @@ to find the best parameter values, and then deploy it.
 
 ### Edit the AppId
 
-Edit MyClassification/src/main/scala/***Evaluation.scala*** to specify the 
+Edit MyClassification/src/main/scala/***Evaluation.scala*** to specify the
 *appId* you used to import the data.
 
 ```scala
@@ -48,19 +48,19 @@ object EngineParamsList extends EngineParamsGenerator {
 
 ### Build and run the evaluation
 To run an evaluation, the command `pio eval` is used. It takes two
-mandatory parameter, 
+mandatory parameter,
 1. the `Evaluation` object, which tells PredictionIO the engine and metric we use
-   for the evaluation; and 
+   for the evaluation; and
 2. the `EngineParamsGenerator`, which contains a list of engine params to test
-   against. 
-The following command kickstarts the evaluation 
+   against.
+The following command kickstarts the evaluation
 workflow for the classification template.
 
 ```
 $ pio build
 ...
 $ pio eval org.template.classification.AccuracyEvaluation \
-    org.template.classification.EngineParamsList 
+    org.template.classification.EngineParamsList
 ```
 
 You will see the following output:
@@ -91,7 +91,7 @@ Optimal Engine Params:
   },
   "preparatorParams":{
     "":{
-      
+
     }
   },
   "algorithmParamsList":[
@@ -103,7 +103,7 @@ Optimal Engine Params:
   ],
   "servingParams":{
     "":{
-      
+
     }
   }
 }
@@ -115,13 +115,13 @@ The best variant params can be found in best.json
 
 The console prints out the evaluation metric score of each engine params, and
 finally pretty print the optimal engine params.
-Amongst the 3 engine params we evaluate, *lambda = 10.0* yields the highest 
+Amongst the 3 engine params we evaluate, *lambda = 10.0* yields the highest
 accuracy score of ~0.9281.
 
 ### Deploy the best engine parameter
 
 The evaluation module also writes out the best engine parameter to disk at
-`best.json`. We can train and deploy this specify engine variant using the 
+`best.json`. We can train and deploy this specify engine variant using the
 extra parameter `-v`. For example:
 
 ```bash
@@ -163,12 +163,12 @@ The PredictionIO evaluation module tests for the best engine params for an
 engine.
 
 Given a set of engine params, we instantiate an engine and evaluate it with existing data.
-The data is split into two sets, a training set and a validation set. 
-The training set is used to train the engine, which is deployed using the same steps described in earlier sections. 
-We query the engine with the test set data, and compare the predicted values in the response 
+The data is split into two sets, a training set and a validation set.
+The training set is used to train the engine, which is deployed using the same steps described in earlier sections.
+We query the engine with the test set data, and compare the predicted values in the response
 with the actual data contained in the validation set.
 We define a ***metric*** to compare ***predicted result*** returned from
-the engine with the ***actual result*** which we obtained from the test data. 
+the engine with the ***actual result*** which we obtained from the test data.
 The goal is to maximize the metric score.
 
 This process is repeated many times with a series of engine params.
@@ -179,8 +179,8 @@ We demonstrate the evaluation with [the classification template]
 
 ## Evaluation Data Generation
 
-In evaluation data generation, the goal is to generate a sequence of (training, 
-validation) data tuple. A common way is to use a *k-fold* generation process. 
+In evaluation data generation, the goal is to generate a sequence of (training,
+validation) data tuple. A common way is to use a *k-fold* generation process.
 The data set is split into *k folds*. We generate k tuples of training and
 validation sets, for each tuple, the training set takes *k - 1* of the folds and
 the validation set takes the remaining fold.
@@ -205,13 +205,13 @@ This class is used to store the actual label of the data (contrast to
 ### Implement Data Generation Method in DataSource
 
 In MyClassification/src/main/scala/***DataSource.scala***, the method
-`readEval` reads and selects data from datastore and returns a 
+`readEval` reads and selects data from datastore and returns a
 sequence of (training, validation) data.
 
 ```scala
 class DataSource(val dsp: DataSourceParams)
   extends PDataSource[TrainingData, EmptyEvaluationInfo, Query, ActualResult] {
-  
+
   ...
 
   override
@@ -255,15 +255,15 @@ class DataSource(val dsp: DataSourceParams)
     val evalK = dsp.evalK.get
     val indexedPoints: RDD[(LabeledPoint, Long)] = labeledPoints.zipWithIndex
 
-    (0 until evalK).map { idx => 
+    (0 until evalK).map { idx =>
       val trainingPoints = indexedPoints.filter(_._2 % evalK != idx).map(_._1)
       val testingPoints = indexedPoints.filter(_._2 % evalK == idx).map(_._1)
 
       (
         new TrainingData(trainingPoints),
         new EmptyEvaluationInfo(),
-        testingPoints.map { 
-          p => (new Query(p.features.toArray), new ActualResult(p.label)) 
+        testingPoints.map {
+          p => (new Query(p.features.toArray), new ActualResult(p.label))
         }
       )
     }
@@ -272,9 +272,9 @@ class DataSource(val dsp: DataSourceParams)
 ```
 
 The `readEval` method returns a sequence of (`TrainingData`, `EvaluationInfo`,
-`RDD[(Query, ActualResult)]`. 
+`RDD[(Query, ActualResult)]`.
 `TrainingData` is the same class we use for deploy,
-`RDD[(Query, ActualResult)]` is the 
+`RDD[(Query, ActualResult)]` is the
 validation set, `EvaluationInfo` can be used to hold some global evaluation data
 ; it is not used in the current example.
 
@@ -292,12 +292,12 @@ For each point in the validation set, we construct the `Query` and
 ## Evaluation Metrics
 
 We define a `Metric` which gives a *score* to engine params. The higher the
-score, the better the engine params are. 
+score, the better the engine params are.
 In this template, we use accuray score which measures
 the portion of correct prediction among all data points.
 
 In MyClassification/src/main/scala/**Evaluation.scala**, the class
-`Accuracy` implements the *accuracy* score. 
+`Accuracy` implements the *accuracy* score.
 It extends a base helper class `AverageMetric` which calculates the average
 score overall *(Query, PredictionResult, ActualResult)* tuple.
 
@@ -309,7 +309,7 @@ case class Accuracy
 }
 ```
 
-Then, implement a `Evaluation` object to define the engine and metric 
+Then, implement a `Evaluation` object to define the engine and metric
 used in this evaluation.
 
 ```scala
@@ -321,7 +321,7 @@ object AccuracyEvaluation extends Evaluation {
 ## Parameters Generation
 The last component is to specify the list of engine params we want to evaluate.
 In this guide, we discuss the simplest method. We specify an explicit list of
-engine params to be evaluated. 
+engine params to be evaluated.
 
 In MyClassification/src/main/scala/**Evaluation.scala**, the object
 `EngineParamsList` specifies the engine params list to be used.
@@ -347,8 +347,8 @@ object EngineParamsList extends EngineParamsGenerator {
 ```
 
 A good practise is to first define a base engine params, it contains the common
-parameters used in all evaluations (lines 7 to 8). With the base params, we 
-construct the list of engine params we want to evaluation by 
+parameters used in all evaluations (lines 7 to 8). With the base params, we
+construct the list of engine params we want to evaluation by
 adding or replacing the controller parameter. Lines 13 to 16 generate 3 engine
 parameters, each has a different smoothing parameters.
 
@@ -364,7 +364,7 @@ from the console.
 $ pio build
 ...
 $ pio eval org.template.classification.AccuracyEvaluation \
-    org.template.classification.EngineParamsList 
+    org.template.classification.EngineParamsList
 ```
 
 You will see the following output:
@@ -395,7 +395,7 @@ Optimal Engine Params:
   },
   "preparatorParams":{
     "":{
-      
+
     }
   },
   "algorithmParamsList":[
@@ -407,7 +407,7 @@ Optimal Engine Params:
   ],
   "servingParams":{
     "":{
-      
+
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/github.html
----------------------------------------------------------------------
diff --git a/docs/manual/source/github.html b/docs/manual/source/github.html
index 9fe96e7..c541920 100644
--- a/docs/manual/source/github.html
+++ b/docs/manual/source/github.html
@@ -1,3 +1,7 @@
+---
+layout: raw
+---
+
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -14,9 +18,7 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
----
-layout: raw
----
+
 <html><body><style type="text/css">
 body {
   padding: 0;

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/index.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/index.html.md.erb b/docs/manual/source/index.html.md.erb
index 991d64c..c1a8fcf 100644
--- a/docs/manual/source/index.html.md.erb
+++ b/docs/manual/source/index.html.md.erb
@@ -1,3 +1,8 @@
+---
+title: Welcome to Apache PredictionIO (incubating)!
+description: Apache PredictionIO (incubating) Open Source Machine Learning Server
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +20,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Welcome to Apache PredictionIO (incubating)!
-description: Apache PredictionIO (incubating) Open Source Machine Learning Server
----
-
 ## What is Apache PredictionIO (incubating)?
 
 Apache PredictionIO (incubating) is an **open source Machine Learning Server**

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/config-datastore.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/config-datastore.html.md b/docs/manual/source/install/config-datastore.html.md
index ec11b0a..eb290c5 100644
--- a/docs/manual/source/install/config-datastore.html.md
+++ b/docs/manual/source/install/config-datastore.html.md
@@ -1,3 +1,7 @@
+---
+title: Changing Data Store
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Changing Data Store
----
-
 Changing Storage Setup
 ===================
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/index.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/index.html.md.erb b/docs/manual/source/install/index.html.md.erb
index fe37fea..70879d1 100644
--- a/docs/manual/source/install/index.html.md.erb
+++ b/docs/manual/source/install/index.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Installing Apache PredictionIO (incubating)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Installing Apache PredictionIO (incubating)
----
-
 [//]: # (## Method 1: Quick Install)
 
 [//]: # (On Linux / Mac OS X, Apache PredictionIO (incubating) can now be installed with a single command:)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/install-linux.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/install-linux.html.md.erb b/docs/manual/source/install/install-linux.html.md.erb
index 2d39aff..e444bfe 100644
--- a/docs/manual/source/install/install-linux.html.md.erb
+++ b/docs/manual/source/install/install-linux.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Installing Apache PredictionIO (incubating) on Linux / Mac OS X
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Installing Apache PredictionIO (incubating) on Linux / Mac OS X
----
-
 [//]: # (## Method 1: Quick Install)
 
 [//]: # (On Linux / Mac OS X, Apache PredictionIO (incubating) can now be installed with a single command:)

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/install-sourcecode.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/install-sourcecode.html.md.erb b/docs/manual/source/install/install-sourcecode.html.md.erb
index 31a33d3..a795b82 100644
--- a/docs/manual/source/install/install-sourcecode.html.md.erb
+++ b/docs/manual/source/install/install-sourcecode.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Installing Apache PredictionIO (incubating) from Source Code
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Installing Apache PredictionIO (incubating) from Source Code
----
-
 INFO: Assuming you are following the directory structure in the followoing,
 replace `/home/abc` with your own home directory wherever you see it.
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/install-vagrant.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/install-vagrant.html.md.erb b/docs/manual/source/install/install-vagrant.html.md.erb
index b8f70a8..8cd4fd0 100644
--- a/docs/manual/source/install/install-vagrant.html.md.erb
+++ b/docs/manual/source/install/install-vagrant.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Installing PredictionIO with Vagrant (VirtualBox)
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Installing PredictionIO with Vagrant (VirtualBox)
----
-
 WARNING: Running PredictionIO with Vagrant is intended for the purposes of
 simple tests in an isolated environment. Due to resource limitation and overhead
 of virtual machine (VM), it runs much more slowly or may encounter memory issue.

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/install/launch-aws.html.md.erb
----------------------------------------------------------------------
diff --git a/docs/manual/source/install/launch-aws.html.md.erb b/docs/manual/source/install/launch-aws.html.md.erb
index 40632eb..3c2ed76 100644
--- a/docs/manual/source/install/launch-aws.html.md.erb
+++ b/docs/manual/source/install/launch-aws.html.md.erb
@@ -1,3 +1,7 @@
+---
+title: Launching PredictionIO on AWS
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Launching PredictionIO on AWS
----
-
 Deploying PredictionIO on Amazon Web Services is extremely easy thanks
 to AWS Marketplace. As long as you have access to AWS, you can launch a
 ready-to-use PredictionIO Amazon EC2 instance with a single click.
@@ -46,7 +46,7 @@ launch the PredictionIO EC2 instance, then click "Continue".
 ![alt text](../images/awsm-1click.png)
 
 Review your instance's settings before launching. For quick prototyping work,
-we recommend using the "memory optimized" instances for the cheapest memory configurations at least the 
+we recommend using the "memory optimized" instances for the cheapest memory configurations at least the
 "Memory Optimized R3 (r3.large)" or for larger datasets the "(r3.xlarge)".
 
 ## Setting Security Group

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/machinelearning/dimensionalityreduction.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/machinelearning/dimensionalityreduction.html.md b/docs/manual/source/machinelearning/dimensionalityreduction.html.md
index 698e783..39eb72e 100644
--- a/docs/manual/source/machinelearning/dimensionalityreduction.html.md
+++ b/docs/manual/source/machinelearning/dimensionalityreduction.html.md
@@ -1,3 +1,7 @@
+---
+title: Dimensionality Reduction With PredictionIO
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,10 +19,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Dimensionality Reduction With PredictionIO
----
-
 The purpose of this guide is to teach developers how to incorporate "dimensionality reduction" into a PredictionIO engine [Principal Component Analysis](https://en.wikipedia.org/wiki/Principal_component_analysis) (PCA) on the [MNIST digit recognition dataset](https://www.kaggle.com/c/digit-recognizer). To do this, you will be modifying the PredictionIO [classification engine template](/gallery/template-gallery/#classification). This guide will demonstrate how to import the specific data set in batch, and also how to change the engine components in order to incorporate the new sample data and implement PCA.
 
 In machine learning, specifically in [supervised learning](http://en.wikipedia.org/wiki/Supervised_learning), the general problem at hand is to predict a numeric outcome \\(y\\) from a numeric vector \\(\bf{x}\\). The different components of \\(\bf{x}\\) are called **features**, and usually represent observed values such as a hospital patient's age, weight, height, sex, etc. There are subtle issues that begin to arise as the number of features contained in each feature vector increases. We briefly list some of the issues that arise as the number of features grows in size:

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3c0c4c5e/docs/manual/source/machinelearning/modelingworkflow.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/machinelearning/modelingworkflow.html.md b/docs/manual/source/machinelearning/modelingworkflow.html.md
index e0a7633..819710a 100644
--- a/docs/manual/source/machinelearning/modelingworkflow.html.md
+++ b/docs/manual/source/machinelearning/modelingworkflow.html.md
@@ -1,3 +1,7 @@
+---
+title: Modeling Workflow and DASE
+---
+
 <!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,11 +19,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 
----
-title: Modeling Workflow and DASE 
----
-
-In addition to the DASE components, we also introduce the Data Model and Training Model abstractions. The Data Model abstraction refers to the set of Scala classes dealing with the implementation of modeling choices relating to feature **extraction**, **preparation**, and/or **selection**. For this illustration, this only includes the vectorization of text and t.f.-i.d.f. processing which is entirely implemented in the PreparedData class. The Training Model abstraction refers to any set of classes that individually take in a set of feature observations and output a predictive model. This predictive model is leveraged by the Algorithm component to produce prediction results to queries in real-time. In the engine template, this abstraction is implemented in the NBModel class. **Please note that these are conceptual abstractions that are designed to make engine development easier by decoupling class functionality.** Keeping these abstractions in mind will help you in the future with de
 bugging your code, and also make it easier to incorporate different modeling ideas into your engine. 
+In addition to the DASE components, we also introduce the Data Model and Training Model abstractions. The Data Model abstraction refers to the set of Scala classes dealing with the implementation of modeling choices relating to feature **extraction**, **preparation**, and/or **selection**. For this illustration, this only includes the vectorization of text and t.f.-i.d.f. processing which is entirely implemented in the PreparedData class. The Training Model abstraction refers to any set of classes that individually take in a set of feature observations and output a predictive model. This predictive model is leveraged by the Algorithm component to produce prediction results to queries in real-time. In the engine template, this abstraction is implemented in the NBModel class. **Please note that these are conceptual abstractions that are designed to make engine development easier by decoupling class functionality.** Keeping these abstractions in mind will help you in the future with de
 bugging your code, and also make it easier to incorporate different modeling ideas into your engine.
 
 The figure below shows a graphical representation of the engine architecture just described, as well as its interactions with your web/app and a provided Event Server:
 
@@ -28,4 +28,4 @@ The figure below shows a graphical representation of the engine architecture jus
 
 ## Training The Model
 
-This section will guide you through the two Training Model implementations that come with this engine template. Recall that the Training Model abstraction refers to an arbitrary set Scala Class that outputs a predictive model (i.e. implements some method that can be used for prediction). The general problem this engine template is tackling is text classification, so that our Training Model abstraction domain is restricted to implementations producing classifiers. In particular, the classification model that is implemented in this engine template is based on Multinomial Naive Bayes using t.f.-i.d.f. vectorized text. 
+This section will guide you through the two Training Model implementations that come with this engine template. Recall that the Training Model abstraction refers to an arbitrary set Scala Class that outputs a predictive model (i.e. implements some method that can be used for prediction). The general problem this engine template is tackling is text classification, so that our Training Model abstraction domain is restricted to implementations producing classifiers. In particular, the classification model that is implemented in this engine template is based on Multinomial Naive Bayes using t.f.-i.d.f. vectorized text.



[03/12] incubator-predictionio git commit: minor edits to system architecture diagram

Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/5335b31d/docs/manual/source/images/pio-architecture.svg
----------------------------------------------------------------------
diff --git a/docs/manual/source/images/pio-architecture.svg b/docs/manual/source/images/pio-architecture.svg
new file mode 100644
index 0000000..dac1e05
--- /dev/null
+++ b/docs/manual/source/images/pio-architecture.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" standalone="yes"?>
+
+<svg version="1.1" viewBox="0.0 0.0 604.3858267716536 322.40157480314963" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="p.0"><path d="m0 0l604.3858 0l0 322.40158l-604.3858 0l0 -322.40158z" clip-rule="nonzero"></path></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l604.3858 0l0 322.40158l-604.3858 0z" fill-rule="nonzero"></path><path fill="#000000" fill-opacity="0.0" d="m16.0 8.0l117.19559 0l0 75.95244l-117.19559 0z" fill-rule="nonzero"></path><g transform="matrix(0.20417349081364827 0.0 0.0 0.2041732283464567 16.0 8.0)"><clipPath id="p.1"><path d="m0 0l574.0 0l0 372.0l-574.0 0z" clip-rule="nonzero"></path></clipPath><image clip-path="url(#p.1)" fill="#000" width="574.0" height="372.0" x="0.0" y="0.0" preserveAspectRatio="none" xlink:href="data:image/png;base64,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

<TRUNCATED>


[02/12] incubator-predictionio git commit: minor edits to system architecture diagram

Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/5335b31d/docs/manual/source/system/index.html.md
----------------------------------------------------------------------
diff --git a/docs/manual/source/system/index.html.md b/docs/manual/source/system/index.html.md
index 4ec96c2..2d3bf7c 100644
--- a/docs/manual/source/system/index.html.md
+++ b/docs/manual/source/system/index.html.md
@@ -2,29 +2,27 @@
 title: System Architecture and Dependencies
 ---
 
-During the [installation](/install), you have installed the following
-software:
+During the [installation](/install), you have installed the latest stable versions of the following software:
 
-* Apache Hadoop 2.4.0 (required only if YARN and HDFS are needed)
-* Apache HBase 0.98.6
-* Apache Spark 1.2.0 for Hadoop 2.4
-* Elasticsearch 1.4.0
+* Apache Hadoop up to 2.7.2 (required only if YARN and HDFS are needed)
+* Apache HBase up to 1.2.4
+* Apache Spark up to 1.6.3 for Hadoop 2.6 (not Spark 2.x version)
+* Elasticsearch up to 1.7.5 (not the Elasticsearch 2.x version)
 
-This section explains how they are used in PredictionIO.
+This section explains general rules-of-thumb for how they are used in PredictionIO. The actual implementation of the Template will define how much of this applies. PredictionIO is flexible about much of this configuration but its Templates generally fit the Lambda model for integrating real-time serving with background periodic model updates. 
 
-![PredictionIO Systems](/images/0.8-engine-data-pipeline.png)
+![PredictionIO Systems](/images/pio-architecture.svg)
 
-**HBase**: Event Server uses Apache HBase as the data store. It stores imported
+**HBase**: Event Server uses Apache HBase (or JDBC DB for small data) as the data store. It stores imported
 events. If you are not using the PredictionIO Event Server, you do not need to
 install HBase.
 
-**Apache Spark**: Spark is a large-scale data processing engine that powers the
-algorithm, training, and serving processing.
+**Apache Spark**: Spark is a large-scale data processing engine that powers the data preparation and input to the algorithm, training, and sometimes the serving processing. PredictionIO allows for different engines to be used in training but many algorithms come from Spark's MLlib. 
 
-A spark algorithm is different from conventional single machine algorithm in a way that spark algorithms use the [RDD](http://spark.apache.org/docs/1.0.1/programming-guide.html#resilient-distributed-datasets-rdds) abstraction as its primary data type. PredictionIO framework natively support both RDD-based algorithms and traditional single-machine algorithms.
+**HDFS**: is a distributed filesystem from Hadoop. It allows storage to be shared among clustered machines. It is used to stage data for batch import into PIO, for export of Event Server datasets, and for storage of some models (see your template for details).
 
 
-**HDFS**: The output of training has two parts: a model and its meta-data. The
-model is then stored in HDFS or a local file system.
+The output of training has two parts: a model and its meta-data. The
+model is then stored in HDFS, a local file system, or Elasticsearch. See the details of your algorithm.
 
-**Elasticsearch**: It stores metadata such as model versions, engine versions, access key and app id mappings, evaluation results, etc.
+**Elasticsearch**: stores metadata such as model versions, engine versions, access key and app id mappings, evaluation results, etc. For some templates it may store the model.


[05/12] incubator-predictionio git commit: added tabbed nav to the template gallery and new information per template

Posted by do...@apache.org.
added tabbed nav to the template gallery and new information per template


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/3d1b777d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/3d1b777d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/3d1b777d

Branch: refs/heads/develop
Commit: 3d1b777d0ec2e4e6d6c77d43a7d528ac44287cb5
Parents: 5335b31
Author: pferrel <pa...@occamsmachete.com>
Authored: Mon Dec 26 14:12:33 2016 -0800
Committer: pferrel <pa...@occamsmachete.com>
Committed: Mon Dec 26 14:12:33 2016 -0800

----------------------------------------------------------------------
 docs/manual/lib/gallery_generator.rb            |  84 ++-
 docs/manual/source/gallery/templates.yaml       | 604 +++++++++++--------
 .../source/stylesheets/partials/_tabs.css.scss  |  11 +
 3 files changed, 426 insertions(+), 273 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3d1b777d/docs/manual/lib/gallery_generator.rb
----------------------------------------------------------------------
diff --git a/docs/manual/lib/gallery_generator.rb b/docs/manual/lib/gallery_generator.rb
index 351a381..84d2e54 100644
--- a/docs/manual/lib/gallery_generator.rb
+++ b/docs/manual/lib/gallery_generator.rb
@@ -22,49 +22,52 @@ module Gallery
 
   private
 
-  INTRO =
-'---
+  INTRO = '---
 title: Engine Template Gallery
 ---
+
+Pick a tab for the type of template you are looking for. Some still need to be ported (a simple process) to Apache PIO and these are marked. Also see each Template description for special support instructions.
+
 '
 
-  UNSUPERVISED = '## Unsupervised Learning '
+  BEGIN_TABS = '<div class="tabs">'
 
-  CLASSIFICATION = '## Classification'
+  RECOMMENDER_SYSTEMS = '<div data-tab="Recommenders">'
 
-  REGRESSION = '## Regression'
+  CLASSIFICATION = '<div data-tab="Classification">'
 
-  RECOMMENDER_SYSTEMS = '## Recommender Systems'
+  REGRESSION = '<div data-tab="Regression">'
 
-  NLP = '## Natural Language Processing'
+  CLUSTERING = '<div data-tab="Clustering">'
 
-  OTHER = '## Other'
+  NLP = '<div data-tab="NLP">'
 
-  TEMPLATE_INTRO = '
-***[%{name}](%{repo})***  '
+  SIMILARITY = '<div data-tab="Similarity">'
 
-  STAR_BUTTON =
-'
-<iframe src="https://ghbtns.com/github-btn.html?user=%{user}&repo=%{repo}&type=star&count=true"
-frameborder="0" align="middle" scrolling="0" width="170px" height="20px"></iframe>
+  OTHER = '<div data-tab="Other">'
 
-'
+  TEMPLATE_INTRO = '<h3><a href="%{repo}">%{name}</a></h3>'
+
+  STAR_BUTTON ='<iframe src="https://ghbtns.com/github-btn.html?user=%{user}&repo=%{repo}&type=star&count=true" frameborder="0" align="middle" scrolling="0" width="170px" height="20px"></iframe>'
 
   TEMPLATE_DETAILS =
 '
+<p>
 %{description}
-
-Type | Language | License | Status | PIO min version
-:----: | :-----:| :-----: | :----: | :-------------:
-%{type} | %{language} | %{license} | %{status} | %{pio_min_version}
+</p>
+<p>Support: %{support}</p>
 <br/>
-'
-
-  SECTION_SEPARATOR =
-'
+<table>
+<tr><th>Type</th><th>Language</th><th>License</th><th>Status</th><th>PIO min version</th><th>Apache PIO Convesion Required</th</tr>
+<tr><td>%{type}</td><td>%{language}</td><td>%{license}</td><td>%{status}</td><td>%{pio_min_version}</td><td>%{apache_pio_convesion_required}</td></tr>
+</table>
 <br/>
 '
 
+  SECTION_SEPARATOR ='</div>'
+
+  END_TABS ='</div>'
+
   class Template
     public
     attr_accessor :has_github, :github_repo, :github_user
@@ -113,7 +116,9 @@ Type | Language | License | Status | PIO min version
       language: template.language,
       license: template.license,
       status: template.status,
+      support: template.support_link,
       pio_min_version: template.pio_min_version,
+      apache_pio_convesion_required: template.apache_pio_convesion_required
     })
   end
 
@@ -124,15 +129,23 @@ Type | Language | License | Status | PIO min version
   end
 
   def self.write_markdown(mdfile, templates)
+    recommenders   = templates.select{ |engine| engine.tags.include? 'recommender' }
     classification = templates.select{ |engine| engine.tags.include? 'classification' }
     regression     = templates.select{ |engine| engine.tags.include? 'regression' }
-    unsupervised   = templates.select{ |engine| engine.tags.include? 'unsupervised' }
-    recommenders   = templates.select{ |engine| engine.tags.include? 'recommender' }
+    similarity     = templates.select{ |engine| engine.tags.include? 'similarity' }
     nlps           = templates.select{ |engine| engine.tags.include? 'nlp' }
+    clustering   = templates.select{ |engine| engine.tags.include? 'clustering' }
     others         = templates.select{ |engine| engine.tags.include? 'other' }
 
     mdfile.write(INTRO)
 
+    mdfile.write(BEGIN_TABS)
+
+    mdfile.write(RECOMMENDER_SYSTEMS)
+    write_templates(mdfile, recommenders)
+
+    mdfile.write(SECTION_SEPARATOR)
+
     mdfile.write(CLASSIFICATION)
     write_templates(mdfile, classification)
 
@@ -143,22 +156,29 @@ Type | Language | License | Status | PIO min version
 
     mdfile.write(SECTION_SEPARATOR)
 
-    mdfile.write(UNSUPERVISED)
-    write_templates(mdfile, unsupervised)
+    mdfile.write(NLP)
+    write_templates(mdfile, nlps)
 
     mdfile.write(SECTION_SEPARATOR)
 
-    mdfile.write(RECOMMENDER_SYSTEMS)
-    write_templates(mdfile, recommenders)
+    mdfile.write(CLUSTERING)
+    write_templates(mdfile, clustering)
 
     mdfile.write(SECTION_SEPARATOR)
 
-    mdfile.write(NLP)
-    write_templates(mdfile, nlps)
+    mdfile.write(SIMILARITY)
+    write_templates(mdfile, similarity)
+
+    mdfile.write(SECTION_SEPARATOR)
 
     mdfile.write(OTHER)
     write_templates(mdfile, others)
-  end
+
+    mdfile.write(SECTION_SEPARATOR)
+
+    mdfile.write(END_TABS)
+
+ end
 
 
   public

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3d1b777d/docs/manual/source/gallery/templates.yaml
----------------------------------------------------------------------
diff --git a/docs/manual/source/gallery/templates.yaml b/docs/manual/source/gallery/templates.yaml
index aa650bd..4dc7e61 100644
--- a/docs/manual/source/gallery/templates.yaml
+++ b/docs/manual/source/gallery/templates.yaml
@@ -1,22 +1,131 @@
+# Similarity
+
+- template:
+    name: Content Based SVD Item Similarity Engine
+    repo: "https://github.com/alexice/template-scala-parallel-svd-item-similarity"
+    description: |-
+      Template to calculate similarity between items based on their attributes&mdash;sometimes called content-based similarity. Attributes can be either numeric or categorical in the last case it will be encoded using one-hot encoder. Algorithm uses SVD in order to reduce data dimensionality. Cosine similarity is now implemented but can be easily extended to other similarity measures.
+    tags: [similarity]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://groups.google.com/forum/#!forum/actionml-user">The Universal Recommender user group</a>'
+
+- template:
+    name: Cstablo-template-text-similarity-classification
+    repo: "https://github.com/goliasz/pio-template-text-similarity"
+    description: |-
+      Text similarity engine based on Word2Vec algorithm. Builds vectors of full documents in training phase. Finds similar documents in query phase.
+    tags: [similarity, nlp]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: 0.9.5
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/goliasz/pio-template-text-similarity/issues">Github issues</a>'
+
+# Clustering
+
+- template:
+    name: MLlibKMeansClustering
+    repo: "https://github.com/sahiliitm/predictionio-MLlibKMeansClusteringTemplate"
+    description: |-
+      This is a template which demonstrates the use of K-Means clustering algorithm which can be deployed on a spark-cluster using prediction.io.
+    tags: [clustering]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: '-'
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/sahiliitm/predictionio-MLlibKMeansClusteringTemplate/issues">Github issues</a>'
+
+- template:
+    name: Topc Model (LDA)
+    repo: "https://github.com/EmergentOrder/template-scala-topic-model-LDA"
+    description: |-
+      A PredictionIO engine template using Latent Dirichlet Allocation to learn a topic model from raw text
+    tags: [clustering]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: 0.9.4
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/EmergentOrder/template-scala-topic-model-LDA/issues">Github issues</a>'
+
+- template:
+    name: KMeans-Clustering-Template
+    repo: "https://github.com/singsanj/KMeans-parallel-template"
+    description: |-
+      forked from PredictionIO/template-scala-parallel-vanilla. It implements the KMeans Algorithm. Can be extended to mainstream implementation with minor changes.
+    tags: [clustering]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/singsanj/KMeans-parallel-template/issues">Github issues</a>'
+
+- template:
+    name: Topic Labelling with Wikipedia
+    repo: "https://github.com/peoplehum/template-Labelling-LDA-Topics-with-wikipedia"
+    description: |-
+      This template will label topics (e.g. topic generated through LDA topic modeling) with relevant category by referring to Wikipedia as a knowledge base.
+    tags: [clustering, nlp]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: stable
+    pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="https://github.com/peoplehum/template-Labelling-LDA-Topics-with-wikipedia/issues">Github issues</a>'
+
+# Recommenders
+
 - template:
     name: The Universal Recommender
     repo: "https://github.com/actionml/universal-recommender"
     description: |-
       Use for:
+      <ul class=tab-list>
+      <li class=tab-list-element>Personalized recommendations&mdash;user-based</li>
+      <li class=tab-list-element>Similar items&mdash;item-based</li>
+      <li class=tab-list-element>Viewed this bought that&mdash;item-based cross-action</li>
+      <li class=tab-list-element>Popular Items and User-defined ranking</li>
+      <li class=tab-list-element>Item-set recommendations for complimentarty purchases or shopping carts&mdash;item-set-based</li>
+      <li class=tab-list-element>Hybrid collaborative filtering and content based recommendations&mdash;limited content-based</li>
+      <li class-tab-list-element>Business rules</li>
+      </ul>
+
+      <p>The name "Universal" refers to the use of this template in virtually any case that calls for recommendations - ecommerce, news, videos, virtually anywhere user behavioral data is known. This recommender uses the new <a href="http://mahout.apache.org/users/algorithms/intro-cooccurrence-spark.html">Cross-Occurrence (CCO) algorithm</a> to auto-correlate different user actions (clickstream data), profile data, contextual information (location, device), and some content types to make better recommendations. It also implements flexible filters and boosts for implementing business rules.</p>
+    tags: [recommender]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: stable
+    pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="https://groups.google.com/forum/#!forum/actionml-user">The Universal Recommender user group</a>'
 
-        * Personalized recommendations&mdash;user-based
-        * Similar items&mdash;item-based
-        * Popular Items, User-defined ranking
-        * Complimentarty Purchases / Shopping Cart&mdash;item-set-based
-        * Hybrid collaborative filtering and content based recommendations for applying business rules
-
-      The name refers to the use of this template in virtually any case that calls for recommendations - ecom, news, videos, virtually anywhere usage data is known. This recommender can auto-correlate different user actions (clickstream data), profile data, contextual information (location, device), and some content types to make better recommendations that follow business rules.
+- template:
+    name: Recommendation
+    repo: "https://github.com/apache/incubator-predictionio-template-recommender"
+    description: |-
+      An engine template is an almost-complete implementation of an engine. PredictionIO's Recommendation Engine Template has integrated Apache Spark MLlib's Collaborative Filtering algorithm by default. You can customize it easily to fit your specific needs.
     tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: stable
     pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 
 - template:
     name: E-Commerce Recommendation
@@ -24,16 +133,34 @@
     description: |-
       This engine template provides personalized recommendation for e-commerce applications with the following features by default:
 
-      * Exclude out-of-stock items
-      * Provide recommendation to new users who sign up after the model is trained
-      * Recommend unseen items only (configurable)
-      * Recommend popular items if no information about the user is available (added in template version v0.4.0)
+      <ul class=tab-list>
+      <li class=tab-list-element>Exclude out-of-stock items</li>
+      <li class=tab-list-element>Provide recommendation to new users who sign up after the model is trained</li>
+      <li class=tab-list-element>Recommend unseen items only (configurable)</li>
+      <li class=tab-list-element>Recommend popular items if no information about the user is available (added in template version v0.4.0)</li>
+      </ul>
     tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: 0.9.2
+    pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
+
+- template:
+    name: Similar Product
+    repo: "https://github.com/apache/incubator-predictionio-template-similar-product"
+    description: |-
+       This engine template recommends products that are "similar" to the input product(s). Similarity is not defined by user or item attributes but by users' previous actions. By default, it uses 'view' action such that product A and B are considered similar if most users who view A also view B. The template can be customized to support other action types such as buy, rate, like..etc
+    tags: [recommender]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: stable
+    pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 
 - template:
     name: E-Commerce Recommendation (Java)
@@ -41,167 +168,187 @@
     description: |-
       This engine template provides personalized recommendation for e-commerce applications with the following features by default:
 
-      * Exclude out-of-stock items
-      * Provide recommendation to new users who sign up after the model is trained
-      * Recommend unseen items only (configurable)
-      * Recommend popular items if no information about the user is available
+      <ul class=tab-list>
+      <li class=tab-list-element>Exclude out-of-stock items</li>
+      <li class=tab-list-element>Provide recommendation to new users who sign up after the model is trained</li>
+      <li class=tab-list-element>Recommend unseen items only (configurable)</li>
+      <li class=tab-list-element>Recommend popular items if no information about the user is available</li>
+      </ul>
     tags: [recommender]
     type: Parallel
     language: Java
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.3
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 
 - template:
     name: Product Ranking
     repo: "https://github.com/PredictionIO/template-scala-parallel-productranking"
     description: |-
       This engine template sorts a list of products for a user based on his/her preference. This is ideal for personalizing the display order of product page, catalog, or menu items if you have large number of options. It creates engagement and early conversion by placing products that a user prefers on the top.
-    tags: [unsupervised]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.9.2
-
-- template:
-    name: Similar Product
-    repo: "https://github.com/apache/incubator-predictionio-template-similar-product"
-    description: |-
-       This engine template recommends products that are "similar" to the input product(s). Similarity is not defined by user or item attributes but by users' previous actions. By default, it uses 'view' action such that product A and B are considered similar if most users who view A also view B. The template can be customized to support other action types such as buy, rate, like..etc
     tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: stable
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
 
 - template:
     name: Complementary Purchase
     repo: "https://github.com/PredictionIO/template-scala-parallel-complementarypurchase"
     description: |-
       This engine template recommends the complementary items which most user frequently buy at the same time with one or more items in the query.
-    tags: [unsupervised]
+    tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
 
 - template:
-    name: Lead Scoring
-    repo: "https://github.com/PredictionIO/template-scala-parallel-leadscoring"
+    name: Music Recommendations
+    repo: "https://github.com/vaibhavist/template-scala-parallel-recommendation"
     description: |-
-      This engine template predicts the probability of an user will convert (conversion event by user) in the current session.
-    tags: [classification]
+      This is very similar to music recommendations template. It is integrated with all the events a music application can have such as song played, liked, downloaded, purchased, etc.
+    tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/vaibhavist/template-scala-parallel-recommendation/issues">Github issues</a>'
 
 - template:
-    name: Recommendation
-    repo: "https://github.com/apache/incubator-predictionio-template-recommender"
+    name: Viewed This Bought That
+    repo: "https://github.com/vngrs/template-scala-parallel-viewedthenbought"
     description: |-
-      An engine template is an almost-complete implementation of an engine. PredictionIO's Recommendation Engine Template has integrated Apache Spark MLlib's Collaborative Filtering algorithm by default. You can customize it easily to fit your specific needs.
-    tags: [unsupervised]
+      This Engine uses co-occurence algorithm to match viewed items to bought items. Using this engine you may predict which item the user will buy, given the item(s) browsed.
+    tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: stable
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/vngrs/template-scala-parallel-viewedthenbought/issues">Github issues</a>'
 
 - template:
-    name: Classification
-    repo: "https://github.com/apache/incubator-predictionio-template-attribute-based-classifier"
+    name: Frequent Pattern Mining
+    repo: "https://github.com/goliasz/pio-template-fpm"
     description: |-
-      An engine template is an almost-complete implementation of an engine. PredictionIO's Classification Engine Template has integrated Apache Spark MLlib's Naive Bayes algorithm by default.
-    tags: [classification]
+      Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score. Sometimes used as a shopping cart recommender but has other uses. 
+    tags: [recommender]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.9.2
+    status: alpha
+    pio_min_version: 0.9.5
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/goliasz/pio-template-fpm/issues">Github issues</a>'
 
 - template:
-    name: Content Based SVD Item Similarity Engine
-    repo: "https://github.com/alexice/template-scala-parallel-svd-item-similarity"
+    name: Similar Product with Rating
+    repo: "https://github.com/ramaboo/template-scala-parallel-similarproduct-with-rating"
     description: |-
-      Template to calculate similarity between items based on their attributes. Attributes can be either numeric or categorical in the last case it will be encoded using one-hot encoder. Algorithm uses SVD in order to reduce data dimensionality. Cosine similarity is now implemented but can be easily extended to other similarity measures.
-    tags: [unsupervised]
+      Similar product template with rating support! Used for the MovieLens Demo.
+    tags: [recommender, similarity]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.2
+    status: beta
+    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/ramaboo/template-scala-parallel-similarproduct-with-rating/issues">Github issues</a>'
 
 - template:
-    name: Survival Regression
-    repo: "https://github.com/goliasz/pio-template-sr"
+    name: Frequent Pattern Mining
+    repo: "https://github.com/goliasz/pio-template-fpm"
     description: |-
-      Survival regression template is based on brand new Spark 1.6 AFT (accelerated failure time) survival analysis algorithm. There are interesting applications of survival analysis like:
-
-        * Business Planning : Profiling customers who has a higher survival rate and make strategy accordingly.
-        * Lifetime Value Prediction : Engage with customers according to their lifetime value
-        * Active customers : Predict when the customer will be active for the next time and take interventions accordingly.     * Campaign evaluation : Monitor effect of campaign on the survival rate of customers.
-
-      Source: http://www.analyticsvidhya.com/blog/2014/04/survival-analysis-model-you/
-    tags: [regression]
+      Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score.
+    tags: [recommender, other]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: beta
+    status: alpha
     pio_min_version: 0.9.5
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/goliasz/pio-template-fpm/issues">Github issues</a>'
+
+# classification
 
 - template:
-    name: Churn Prediction - H2O Sparkling Water
-    repo: "https://github.com/andrewwuan/PredictionIO-Churn-Prediction-H2O-Sparkling-Water"
+    name: Classification
+    repo: "https://github.com/apache/incubator-predictionio-template-attribute-based-classifier"
     description: |-
-      This is an engine template with Sparkling Water integration. The goal is to use Deep Learning algorithm to predict the churn rate for a phone carrier's customers.
+      An engine template is an almost-complete implementation of an engine. PredictionIO's Classification Engine Template has integrated Apache Spark MLlib's Naive Bayes algorithm by default.
     tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
+    status: stable
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 
 - template:
-    name: Classification Deeplearning4j
-    repo: "https://github.com/detrevid/predictionio-template-classification-dl4j"
+    name: Lead Scoring
+    repo: "https://github.com/PredictionIO/template-scala-parallel-leadscoring"
     description: |-
-      A classification engine template that uses Deeplearning4j library.
+      This engine template predicts the probability of an user will convert (conversion event by user) in the current session.
     tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
 
 - template:
-    name: Sparkling Water-Deep Learning Energy Forecasting
-    repo: "https://github.com/BensonQiu/predictionio-template-recommendation-sparklingwater"
+    name: Text Classification
+    repo: "https://github.com/apache/incubator-predictionio-template-text-classifier"
     description: |-
-      This Engine Template demonstrates an energy forecasting engine. It integrates Deep Learning from the Sparkling Water library to perform energy analysis. We can query the circuit and time, and return predicted energy usage.
-    tags: [regression]
+      Use this engine for general text classification purposes. Uses OpenNLP library for text vectorization, includes t.f.-i.d.f.-based feature transformation and reduction, and uses Spark MLLib's Multinomial Naive Bayes implementation for classification.
+    tags: [classification, nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/apache/incubator-predictionio-template-text-classifier/issues">Github issues</a>'
 
+- template:
+    name: Churn Prediction - H2O Sparkling Water
+    repo: "https://github.com/andrewwuan/PredictionIO-Churn-Prediction-H2O-Sparkling-Water"
+    description: |-
+      This is an engine template with Sparkling Water integration. The goal is to use Deep Learning algorithm to predict the churn rate for a phone carrier's customers.
+    tags: [classification]
+    type: Parallel
+    language: Scala
+    license: "Apache Licence 2.0"
+    status: alpha
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/andrewwuan/PredictionIO-Churn-Prediction-H2O-Sparkling-Water/issues">Github issues</a>'
 
 - template:
-    name: OpenNLP Sentiment Analysis Template
-    repo: "https://github.com/vshwnth2/OpenNLP-SentimentAnalysis-Template"
+    name: Classification Deeplearning4j
+    repo: "https://github.com/detrevid/predictionio-template-classification-dl4j"
     description: |-
-      Given a sentence, this engine will return a score between 0 and 4. This is the sentiment of the sentence. The lower the number the more negative the sentence is. It uses the OpenNLP library.
-    tags: [nlp]
+      A classification engine template that uses Deeplearning4j library.
+    tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: "-"
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/detrevid/predictionio-template-classification-dl4j/issues">Github issues</a>'
 
 - template:
     name: Probabilistic Classifier (Logistic Regression w/ LBFGS)
@@ -214,18 +361,22 @@
     license: "MIT License"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/EmergentOrder/template-scala-probabilistic-classifier-batch-lbfgs/issues">Github issues</a>'
 
 - template:
     name: Document Classification with OpenNLP
     repo: "https://github.com/chrischris292/template-classification-opennlp"
     description: |-
       Document Classification template with OpenNLP GISModel.
-    tags: [nlp]
+    tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/chrischris292/template-classification-opennlp/issues">Github issues</a>'
 
 - template:
     name: Circuit End Use Classification
@@ -238,150 +389,144 @@
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.1
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/harry5z/template-circuit-classification-sparkling-water/issues">Github issues</a>'
 
 - template:
-    name: Viewed This Bought That
-    repo: "https://github.com/vngrs/template-scala-parallel-viewedthenbought"
-    description: |-
-      This Engine uses co-occurence algorithm to match viewed items to bought items. Using this engine you may predict which item the user will buy, given the item(s) browsed.
-    tags: [unsupervised]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.9.2
-
-- template:
-    name: Music Recommendations
-    repo: "https://github.com/vaibhavist/template-scala-parallel-recommendation"
+    name: GBRT_Classification
+    repo: "https://github.com/ailurus1991/GBRT_Template_PredictionIO"
     description: |-
-      This is very similar to music recommendations template. It is integrated with all the events a music application can have such as song played, liked, downloaded, purchased, etc.
-    tags: [unsupervised]
+      The Gradient-Boosted Regression Trees(GBRT) for classification.
+    tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/ailurus1991/GBRT_Template_PredictionIO/issues">Github issues</a>'
 
 - template:
-    name: template-decision-tree-feature-importance
-    repo: "https://github.com/anthill/template-decision-tree-feature-importance"
+    name: MLlib-Decision-Trees-Template
+    repo: "https://github.com/mohanaprasad1994/PredictionIO-MLlib-Decision-Trees-Template"
     description: |-
-      This template shows how to use spark' decision tree. It enables : - both categorical and continuous features - feature importance calculation - tree output in json - reading training data from a csv file
-    tags: [unsupervised]
+      An engine template is an almost-complete implementation of an engine. This is a classification engine template which has integrated Apache Spark MLlib's Decision tree algorithm by default.
+    tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: stable
+    status: alpha
     pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/mohanaprasad1994/PredictionIO-MLlib-Decision-Trees-Template/issues">Github issues</a>'
 
 - template:
-    name: Electric Load Forecasting
-    repo: "https://github.com/detrevid/predictionio-load-forecasting"
+    name: Classification with MultiLayerNetwork
+    repo: "https://github.com/jimmyywu/predictionio-template-classification-dl4j-multilayer-network"
     description: |-
-      This is a PredictionIO engine for electric load forecasting. The engine is using linear regression with stochastic gradient descent from Spark MLlib.
-    tags: [regression]
+      This engine template integrates the MultiLayerNetwork implementation from the Deeplearning4j library into PredictionIO. In this template, we use PredictionIO to classify the widely-known IRIS flower dataset by constructing a deep-belief net.
+    tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.9.2
+    status: alpha
+    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/jimmyywu/predictionio-template-classification-dl4j-multilayer-network/issues">Github issues</a>'
 
 - template:
-    name: Sentiment analysis
-    repo: "https://github.com/pawel-n/template-scala-cml-sentiment"
+    name: Deeplearning4j RNTN
+    repo: "https://github.com/ts335793/template-scala-parallel-dl4j-rntn"
     description: |-
-      This template implements various algorithms for sentiment analysis, most based on recursive neural networks (RNN) and recursive neural tensor networks (RNTN)[1]. It uses an experimental library called Composable Machine Learning (CML) and the Stanford Parser. The example data set is the Stanford Sentiment Treebank.
-    tags: [nlp]
+      Recursive Neural Tensor Network algorithm is supervised learning algorithm used to predict sentiment of sentences. This template is based on deeplearning4j RNTN example: https://github.com/SkymindIO/deeplearning4j-nlp-examples/tree/master/src/main/java/org/deeplearning4j/rottentomatoes/rntn. It's goal is to show how to integrate deeplearning4j library with PredictionIO.
+    tags: [classification, nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/ts335793/template-scala-parallel-dl4j-rntn/issues">Github issues</a>'
 
 - template:
-    name: GBRT_Classification
-    repo: "https://github.com/ailurus1991/GBRT_Template_PredictionIO"
+    name: classifier-kafka-streaming-template
+    repo: "https://github.com/singsanj/classifier-kafka-streaming-template"
     description: |-
-      The Gradient-Boosted Regression Trees(GBRT) for classification.
+      The template will provide a simple integration of DASE with kafka using spark streaming capabilites in order to play around with real time notification, messages ..
     tags: [classification]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: 0.9.2
+    pio_min_version: "-"
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/singsanj/classifier-kafka-streaming-template/issues">Github issues</a>'
 
 - template:
-    name: MLlibKMeansClustering
-    repo: "https://github.com/sahiliitm/predictionio-MLlibKMeansClusteringTemplate"
+    name: Sentiment Analysis - Bag of Words Model
+    repo: "https://github.com/peoplehum/BagOfWords_SentimentAnalysis_Template"
     description: |-
-      This is a template which demonstrates the use of K-Means clustering algorithm which can be deployed on a spark-cluster using prediction.io.
-    tags: [unsupervised]
+      This sentiment analysis template uses a bag of words model. Given text, the engine will return sentiment as 1.0 (positive) or 0.0 (negative) along with scores indicating how +ve or -ve it is.
+    tags: [classification, nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: '-'
+    status: stable
+    pio_min_version: 0.10.0-incubating
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="https://github.com/peoplehum/BagOfWords_SentimentAnalysis_Template/issues">Github issues</a>'
+
+# Regression
 
 - template:
-    name: Word2Vec
-    repo: "https://github.com/pawel-n/template-scala-parallel-word2vec"
+    name: Survival Regression
+    repo: "https://github.com/goliasz/pio-template-sr"
     description: |-
-      This template integrates the Word2Vec implementation from deeplearning4j with PredictionIO. The Word2Vec algorithm takes a corpus of text and computes a vector representation for each word. These representations can be subsequently used in many natural language processing applications.
-    tags: [nlp]
+      Survival regression template is based on brand new Spark 1.6 AFT (accelerated failure time) survival analysis algorithm. There are interesting applications of survival analysis like:
+
+      <ul class=tab-list>
+        <li class=tab-list-element>Business Planning : Profiling customers who has a higher survival rate and make strategy accordingly.</li>
+        <li class=tab-list-element>Lifetime Value Prediction : Engage with customers according to their lifetime value</li>
+        <li class=tab-list-element>Active customers : Predict when the customer will be active for the next time and take interventions accordingly.     * Campaign evaluation : Monitor effect of campaign on the survival rate of customers.</li>
+      </ul>
+
+      Source: http://www.analyticsvidhya.com/blog/2014/04/survival-analysis-model-you/
+    tags: [regression]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.0
+    status: beta
+    pio_min_version: 0.9.5
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="http://www.analyticsvidhya.com/blog/2014/04/survival-analysis-model-you/">Blog post</a>'
 
 - template:
-    name: MLlib-Decision-Trees-Template
-    repo: "https://github.com/mohanaprasad1994/PredictionIO-MLlib-Decision-Trees-Template"
+    name: Sparkling Water-Deep Learning Energy Forecasting
+    repo: "https://github.com/BensonQiu/predictionio-template-recommendation-sparklingwater"
     description: |-
-      An engine template is an almost-complete implementation of an engine. This is a classification engine template which has integrated Apache Spark MLlib's Decision tree algorithm by default.
-    tags: [classification]
+      This Engine Template demonstrates an energy forecasting engine. It integrates Deep Learning from the Sparkling Water library to perform energy analysis. We can query the circuit and time, and return predicted energy usage.
+    tags: [regression]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: 0.9.0
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/BensonQiu/predictionio-template-recommendation-sparklingwater/issues">Github issues</a>'
 
 - template:
-    name: Spark Deeplearning4j Word2Vec
-    repo: "https://github.com/ts335793/template-scala-spark-dl4j-word2vec"
+    name: Electric Load Forecasting
+    repo: "https://github.com/detrevid/predictionio-load-forecasting"
     description: |-
-      This template shows how to integrate Deeplearnign4j spark api with PredictionIO on example of app which uses Word2Vec algorithm to predict nearest words.
-    tags: [nlp]
+      This is a PredictionIO engine for electric load forecasting. The engine is using linear regression with stochastic gradient descent from Spark MLlib.
+    tags: [regression]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: stable
     pio_min_version: 0.9.2
-
-- template:
-    name: Sentiment Analysis Template
-    repo: "https://github.com/whhone/template-sentiment-analysis"
-    description: |-
-      Given a sentence, return a score between 0 and 4, indicating the sentence's sentiment. 0 being very negative, 4 being very positive, 2 being neutral. The engine uses the stanford CoreNLP library and the Scala binding `gangeli/CoreNLP-Scala` for parsing.
-    tags: [nlp]
-    type: Parallel
-    language: Scala
-    license: None
-    status: stable
-    pio_min_version: 0.9.0
-
-- template:
-    name: Classification with MultiLayerNetwork
-    repo: "https://github.com/jimmyywu/predictionio-template-classification-dl4j-multilayer-network"
-    description: |-
-      This engine template integrates the MultiLayerNetwork implementation from the Deeplearning4j library into PredictionIO. In this template, we use PredictionIO to classify the widely-known IRIS flower dataset by constructing a deep-belief net.
-    tags: [classification]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/detrevid/predictionio-load-forecasting/issues">Github issues</a>'
 
 - template:
     name: MLLib-LinearRegression
@@ -394,114 +539,124 @@
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: 0.9.1
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/RAditi/PredictionIO-MLLib-LinReg-Template/issues">Github issues</a>'
 
-- template:
-    name: Text Classification
-    repo: "https://github.com/apache/incubator-predictionio-template-text-classifier"
-    description: |-
-      Use this engine for general text classification purposes. Uses OpenNLP library for text vectorization, includes t.f.-i.d.f.-based feature transformation and reduction, and uses Spark MLLib's Multinomial Naive Bayes implementation for classification.
-    tags: [nlp]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.2
+# NLP
 
 - template:
-    name: Deeplearning4j RNTN
-    repo: "https://github.com/ts335793/template-scala-parallel-dl4j-rntn"
+    name: OpenNLP Sentiment Analysis Template
+    repo: "https://github.com/vshwnth2/OpenNLP-SentimentAnalysis-Template"
     description: |-
-      Recursive Neural Tensor Network algorithm is supervised learning algorithm used to predict sentiment of sentences. This template is based on deeplearning4j RNTN example: https://github.com/SkymindIO/deeplearning4j-nlp-examples/tree/master/src/main/java/org/deeplearning4j/rottentomatoes/rntn. It's goal is to show how to integrate deeplearning4j library with PredictionIO.
+      Given a sentence, this engine will return a score between 0 and 4. This is the sentiment of the sentence. The lower the number the more negative the sentence is. It uses the OpenNLP library.
     tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: 0.9.2
+    pio_min_version: "-"
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/vshwnth2/OpenNLP-SentimentAnalysis-Template/issues">Github issues</a>'
 
 - template:
-    name: Recursive Neural Networks (Sentiment Analysis)
-    repo: "https://github.com/ts335793/template-scala-rnn"
+    name: Sentiment analysis
+    repo: "https://github.com/pawel-n/template-scala-cml-sentiment"
     description: |-
-      Predicting sentiment of phrases with use of Recursive Neural Network algorithm and OpenNLP parser.
+      This template implements various algorithms for sentiment analysis, most based on recursive neural networks (RNN) and recursive neural tensor networks (RNTN)[1]. It uses an experimental library called Composable Machine Learning (CML) and the Stanford Parser. The example data set is the Stanford Sentiment Treebank.
     tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: stable
+    status: alpha
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/pawel-n/template-scala-cml-sentiment/issues">Github issues</a>'
 
 - template:
-    name: CoreNLP Text Classification
-    repo: "https://github.com/Ling-Ling/CoreNLP-Text-Classification"
+    name: Word2Vec
+    repo: "https://github.com/pawel-n/template-scala-parallel-word2vec"
     description: |-
-      This engine uses CoreNLP to do text analysis in order to classify the category a strings of text falls under.
+      This template integrates the Word2Vec implementation from deeplearning4j with PredictionIO. The Word2Vec algorithm takes a corpus of text and computes a vector representation for each word. These representations can be subsequently used in many natural language processing applications.
     tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
-    pio_min_version: "-"
+    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/pawel-n/template-scala-parallel-word2vec/issues">Github issues</a>'
 
 - template:
-    name: Topc Model (LDA)
-    repo: "https://github.com/EmergentOrder/template-scala-topic-model-LDA"
+    name: Spark Deeplearning4j Word2Vec
+    repo: "https://github.com/ts335793/template-scala-spark-dl4j-word2vec"
     description: |-
-      A PredictionIO engine template using Latent Dirichlet Allocation to learn a topic model from raw text
+      This template shows how to integrate Deeplearnign4j spark api with PredictionIO on example of app which uses Word2Vec algorithm to predict nearest words.
     tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.4
+    status: stable
+    pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/ts335793/template-scala-spark-dl4j-word2vec/issues">Github issues</a>'
 
 - template:
-    name: Cstablo-template-text-similarityelassification
-    repo: "https://github.com/goliasz/pio-template-text-similarity"
+    name: Sentiment Analysis Template
+    repo: "https://github.com/whhone/template-sentiment-analysis"
     description: |-
-      Text similarity engine based on Word2Vec algorithm. Builds vectors of full documents in training phase. Finds similar documents in query phase.
+      Given a sentence, return a score between 0 and 4, indicating the sentence's sentiment. 0 being very negative, 4 being very positive, 2 being neutral. The engine uses the stanford CoreNLP library and the Scala binding `gangeli/CoreNLP-Scala` for parsing.
     tags: [nlp]
     type: Parallel
     language: Scala
-    license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.5
+    license: None
+    status: stable
+    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/whhone/template-sentiment-analysis/issues">Github issues</a>'
 
 - template:
-    name: KMeans-Clustering-Template
-    repo: "https://github.com/singsanj/KMeans-parallel-template"
+    name: Recursive Neural Networks (Sentiment Analysis)
+    repo: "https://github.com/ts335793/template-scala-rnn"
     description: |-
-      forked from PredictionIO/template-scala-parallel-vanilla. It implements the KMeans Algorithm. Can be extended to mainstream implementation with minor changes.
-    tags: [unsupervised]
+      Predicting sentiment of phrases with use of Recursive Neural Network algorithm and OpenNLP parser.
+    tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
+    status: stable
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/ts335793/template-scala-rnn/issues">Github issues</a>'
 
 - template:
-    name: classifier-kafka-streaming-template
-    repo: "https://github.com/singsanj/classifier-kafka-streaming-template"
+    name: CoreNLP Text Classification
+    repo: "https://github.com/Ling-Ling/CoreNLP-Text-Classification"
     description: |-
-      The template will provide a simple integration of DASE with kafka using spark streaming capabilites in order to play around with real time notification, messages ..
-    tags: [classification]
+      This engine uses CoreNLP to do text analysis in order to classify the category a strings of text falls under.
+    tags: [nlp]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
     status: alpha
     pio_min_version: "-"
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/Ling-Ling/CoreNLP-Text-Classification/issues">Github issues</a>'
+
+# other 
 
 - template:
-    name: Frequent Pattern Mining
-    repo: "https://github.com/goliasz/pio-template-fpm"
+    name: template-decision-tree-feature-importance
+    repo: "https://github.com/anthill/template-decision-tree-feature-importance"
     description: |-
-      Template uses FP Growth algorithm allowing to mine for frequent patterns. Template returns subsequent items together with confidence score.
-    tags: [unsupervised]
+      This template shows how to use spark' decision tree. It enables : - both categorical and continuous features - feature importance calculation - tree output in json - reading training data from a csv file
+    tags: [other]
     type: Parallel
     language: Scala
     license: "Apache Licence 2.0"
-    status: alpha
-    pio_min_version: 0.9.5
+    status: stable
+    pio_min_version: 0.9.0
+    apache_pio_convesion_required: "requires conversion"
+    support_link: '<a href="https://github.com/anthill/template-decision-tree-feature-importance/issues">Github issues</a>'
 
 - template:
     name: Skeleton
@@ -514,39 +669,6 @@
     license: "Apache Licence 2.0"
     status: stable
     pio_min_version: 0.9.2
+    apache_pio_convesion_required: "already compatible"
+    support_link: '<a href="http://predictionio.incubator.apache.org/support/">Apache PredictionIO mailing lists</a>'
 
-- template:
-    name: Similar Product with Rating
-    repo: "https://github.com/ramaboo/template-scala-parallel-similarproduct-with-rating"
-    description: |-
-      Similar product template with rating support! Used for the MovieLens Demo.
-    tags: [unsupervised]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: beta
-    pio_min_version: 0.9.0
-
-- template:
-    name: Sentiment Analysis - Bag of Words Model
-    repo: "https://github.com/peoplehum/BagOfWords_SentimentAnalysis_Template"
-    description: |-
-      This sentiment analysis template uses a bag of words model. Given text, the engine will return sentiment as 1.0 (positive) or 0.0 (negative) along with scores indicating how +ve or -ve it is.
-    tags: [nlp]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.10.0-incubating
-
-- template:
-    name: Topic Labelling with Wikipedia
-    repo: "https://github.com/peoplehum/template-Labelling-LDA-Topics-with-wikipedia"
-    description: |-
-      This template will label topics (e.g. topic generated through LDA topic modeling) with relevant category by referring to Wikipedia as a knowledge base.
-    tags: [nlp]
-    type: Parallel
-    language: Scala
-    license: "Apache Licence 2.0"
-    status: stable
-    pio_min_version: 0.10.0-incubating

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/3d1b777d/docs/manual/source/stylesheets/partials/_tabs.css.scss
----------------------------------------------------------------------
diff --git a/docs/manual/source/stylesheets/partials/_tabs.css.scss b/docs/manual/source/stylesheets/partials/_tabs.css.scss
index 63da5df..eff9b73 100644
--- a/docs/manual/source/stylesheets/partials/_tabs.css.scss
+++ b/docs/manual/source/stylesheets/partials/_tabs.css.scss
@@ -38,4 +38,15 @@
       }
     }
   }
+  ul.tab-list {
+    list-style-type: disc; 
+    list-style-position: inside; 
+    margin-top: 0px; 
+    margin-bottom: 15px;
+  }
+  li.tab-list-element {
+    display: list-item; 
+    float: none;
+    width: 100%
+  }
 }
\ No newline at end of file


[04/12] incubator-predictionio git commit: minor edits to system architecture diagram

Posted by do...@apache.org.
minor edits to system architecture diagram


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/5335b31d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/5335b31d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/5335b31d

Branch: refs/heads/develop
Commit: 5335b31dd95c72be5cc4a60f0756a978d1b2d908
Parents: 6f0307c
Author: pferrel <pa...@occamsmachete.com>
Authored: Sun Dec 25 12:50:17 2016 -0800
Committer: pferrel <pa...@occamsmachete.com>
Committed: Sun Dec 25 12:50:17 2016 -0800

----------------------------------------------------------------------
 docs/manual/source/images/pio-architecture.svg |  4 +++
 docs/manual/source/system/index.html.md        | 28 ++++++++++-----------
 2 files changed, 17 insertions(+), 15 deletions(-)
----------------------------------------------------------------------



[06/12] incubator-predictionio git commit: [PIO-44] Fix API doc generation

Posted by do...@apache.org.
[PIO-44] Fix API doc generation


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/205c5a73
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/205c5a73
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/205c5a73

Branch: refs/heads/develop
Commit: 205c5a73bea66e3b81531c5b4a54f3fdf45aded1
Parents: 3d1b777
Author: Donald Szeto <do...@apache.org>
Authored: Mon Jan 23 16:51:40 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Mon Jan 23 16:51:40 2017 -0800

----------------------------------------------------------------------
 build.sbt                                       | 166 ++++++++++---------
 .../predictionio/annotation/DeveloperApi.java   |  37 +++++
 .../predictionio/annotation/Experimental.java   |  38 +++++
 .../predictionio/annotation/DeveloperApi.java   |  37 -----
 .../predictionio/annotation/Experimental.java   |  38 -----
 .../predictionio/data/storage/DataMap.scala     |   5 +-
 docs/scaladoc/rootdoc.txt                       |   2 +-
 project/build.properties                        |   2 +-
 project/unidoc.sbt                              |   2 +-
 9 files changed, 166 insertions(+), 161 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/build.sbt
----------------------------------------------------------------------
diff --git a/build.sbt b/build.sbt
index bc2f254..eba8438 100644
--- a/build.sbt
+++ b/build.sbt
@@ -40,7 +40,7 @@ json4sVersion in ThisBuild := "3.2.10"
 
 sparkVersion in ThisBuild := "1.4.0"
 
-lazy val pioBuildInfoSettings = buildInfoSettings ++ Seq(
+val pioBuildInfoSettings = buildInfoSettings ++ Seq(
   sourceGenerators in Compile <+= buildInfo,
   buildInfoKeys := Seq[BuildInfoKey](
     name,
@@ -50,104 +50,108 @@ lazy val pioBuildInfoSettings = buildInfoSettings ++ Seq(
     sparkVersion),
   buildInfoPackage := "org.apache.predictionio.core")
 
-lazy val conf = file(".") / "conf"
+val conf = file(".") / "conf"
 
-lazy val root = project in file(".") aggregate(
-  common,
-  core,
-  data,
-  tools,
-  e2)
+val commonSettings = Seq(
+  autoAPIMappings := true)
 
-lazy val common = (project in file("common")).
+val common = (project in file("common")).
+  settings(commonSettings: _*).
+  settings(genjavadocSettings: _*).
   settings(unmanagedClasspath in Test += conf)
 
-lazy val core = (project in file("core")).
-  dependsOn(data).
+val data = (project in file("data")).
+  dependsOn(common).
+  settings(commonSettings: _*).
   settings(genjavadocSettings: _*).
-  settings(pioBuildInfoSettings: _*).
-  enablePlugins(SbtTwirl).
   settings(unmanagedClasspath in Test += conf)
 
-lazy val data = (project in file("data")).
-  dependsOn(common).
+val core = (project in file("core")).
+  dependsOn(data).
+  settings(commonSettings: _*).
   settings(genjavadocSettings: _*).
+  settings(pioBuildInfoSettings: _*).
+  enablePlugins(SbtTwirl).
   settings(unmanagedClasspath in Test += conf)
 
-lazy val tools = (project in file("tools")).
+val tools = (project in file("tools")).
   dependsOn(core).
   dependsOn(data).
+  settings(commonSettings: _*).
+  settings(genjavadocSettings: _*).
   enablePlugins(SbtTwirl).
   settings(unmanagedClasspath in Test += conf)
 
-lazy val e2 = (project in file("e2")).
+val e2 = (project in file("e2")).
+  settings(commonSettings: _*).
   settings(genjavadocSettings: _*).
   settings(unmanagedClasspath in Test += conf)
 
-scalaJavaUnidocSettings
-
-// scalaUnidocSettings
-
-unidocAllSources in (JavaUnidoc, unidoc) := {
-  (unidocAllSources in (JavaUnidoc, unidoc)).value
-    .map(_.filterNot(_.getName.contains("$")))
-}
-
-scalacOptions in (ScalaUnidoc, unidoc) ++= Seq(
-  "-groups",
-  "-skip-packages",
-  Seq(
-    "akka",
-    "breeze",
-    "html",
-    "org.apache.predictionio.annotation",
-    "org.apache.predictionio.controller.html",
-    "org.apache.predictionio.data.api",
-    "org.apache.predictionio.data.view",
-    "org.apache.predictionio.workflow",
-    "org.apache.predictionio.tools",
-    "org",
-    "scalikejdbc").mkString(":"),
-  "-doc-title",
-  "PredictionIO Scala API",
-  "-doc-version",
-  version.value,
-  "-doc-root-content",
-  "docs/scaladoc/rootdoc.txt")
-
-javacOptions in (JavaUnidoc, unidoc) := Seq(
-  "-subpackages",
-  "org.apache.predictionio",
-  "-exclude",
-  Seq(
-    "org.apache.predictionio.controller.html",
-    "org.apache.predictionio.data.api",
-    "org.apache.predictionio.data.view",
-    "org.apache.predictionio.data.webhooks.*",
-    "org.apache.predictionio.workflow",
-    "org.apache.predictionio.tools",
-    "org.apache.hadoop").mkString(":"),
-  "-windowtitle",
-  "PredictionIO Javadoc " + version.value,
-  "-group",
-  "Java Controllers",
-  Seq(
-    "org.apache.predictionio.controller.java",
-    "org.apache.predictionio.data.store.java").mkString(":"),
-  "-group",
-  "Scala Base Classes",
-  Seq(
-    "org.apache.predictionio.controller",
-    "org.apache.predictionio.core",
-    "org.apache.predictionio.data.storage",
-    "org.apache.predictionio.data.storage.*",
-    "org.apache.predictionio.data.store").mkString(":"),
-  "-overview",
-  "docs/javadoc/javadoc-overview.html",
-  "-noqualifier",
-  "java.lang")
-
-lazy val pioUnidoc = taskKey[Unit]("Builds PredictionIO ScalaDoc and Javadoc")
+val root = (project in file(".")).
+  settings(commonSettings: _*).
+  // settings(scalaJavaUnidocSettings: _*).
+  settings(unidocSettings: _*).
+  settings(
+    scalacOptions in (ScalaUnidoc, unidoc) ++= Seq(
+      "-groups",
+      "-skip-packages",
+      Seq(
+        "akka",
+        "org.apache.predictionio.annotation",
+        "org.apache.predictionio.authentication",
+        "org.apache.predictionio.configuration",
+        "org.apache.predictionio.controller.html",
+        "org.apache.predictionio.controller.java",
+        "org.apache.predictionio.data.api",
+        "org.apache.predictionio.data.view",
+        "org.apache.predictionio.tools",
+        "scalikejdbc").mkString(":"),
+      "-doc-title",
+      "PredictionIO Scala API",
+      "-doc-version",
+      version.value,
+      "-doc-root-content",
+      "docs/scaladoc/rootdoc.txt")).
+  settings(
+    javacOptions in (JavaUnidoc, unidoc) := Seq(
+      "-subpackages",
+      "org.apache.predictionio",
+      "-exclude",
+      Seq(
+        "org.apache.predictionio.controller.html",
+        "org.apache.predictionio.data.api",
+        "org.apache.predictionio.data.view",
+        "org.apache.predictionio.data.webhooks.*",
+        "org.apache.predictionio.workflow",
+        "org.apache.predictionio.tools",
+        "org.apache.hadoop").mkString(":"),
+      "-windowtitle",
+      "PredictionIO Javadoc " + version.value,
+      "-group",
+      "Java Controllers",
+      Seq(
+        "org.apache.predictionio.controller.java",
+        "org.apache.predictionio.data.store.java").mkString(":"),
+      "-group",
+      "Scala Base Classes",
+      Seq(
+        "org.apache.predictionio.controller",
+        "org.apache.predictionio.core",
+        "org.apache.predictionio.data.storage",
+        "org.apache.predictionio.data.storage.*",
+        "org.apache.predictionio.data.store").mkString(":"),
+      "-overview",
+      "docs/javadoc/javadoc-overview.html",
+      "-noqualifier",
+      "java.lang")).
+  aggregate(
+    common,
+    core,
+    data,
+    tools,
+    e2)
+
+val pioUnidoc = taskKey[Unit]("Builds PredictionIO ScalaDoc")
 
 pioUnidoc := {
   (unidoc in Compile).value

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/common/src/main/java/org/apache/predictionio/annotation/DeveloperApi.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/predictionio/annotation/DeveloperApi.java b/common/src/main/java/org/apache/predictionio/annotation/DeveloperApi.java
new file mode 100644
index 0000000..39b6064
--- /dev/null
+++ b/common/src/main/java/org/apache/predictionio/annotation/DeveloperApi.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.predictionio.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * A lower-level, unstable API intended for developers.
+ *
+ * Developer API's might change or be removed in minor versions of Spark.
+ *
+ * NOTE: If there exists a Scaladoc comment that immediately precedes this
+ * annotation, the first line of the comment must be ":: DeveloperApi ::" with
+ * no trailing blank line. This is because of the known issue that Scaladoc
+ * displays only either the annotation or the comment, whichever comes first.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,
+        ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE,
+        ElementType.PACKAGE})
+public @interface DeveloperApi {}

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/common/src/main/java/org/apache/predictionio/annotation/Experimental.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/predictionio/annotation/Experimental.java b/common/src/main/java/org/apache/predictionio/annotation/Experimental.java
new file mode 100644
index 0000000..4f10eb2
--- /dev/null
+++ b/common/src/main/java/org/apache/predictionio/annotation/Experimental.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+package org.apache.predictionio.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * An experimental user-facing API.
+ *
+ * Experimental API's might change or be removed, or be adopted as first-class
+ * API's.
+ *
+ * NOTE: If there exists a Scaladoc comment that immediately precedes this
+ * annotation, the first line of the comment must be ":: Experimental ::" with
+ * no trailing blank line. This is because of the known issue that Scaladoc
+ * displays only either the annotation or the comment, whichever comes first.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,
+  ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE,
+  ElementType.PACKAGE})
+public @interface Experimental {}

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/common/src/main/scala/org/apache/predictionio/annotation/DeveloperApi.java
----------------------------------------------------------------------
diff --git a/common/src/main/scala/org/apache/predictionio/annotation/DeveloperApi.java b/common/src/main/scala/org/apache/predictionio/annotation/DeveloperApi.java
deleted file mode 100644
index 39b6064..0000000
--- a/common/src/main/scala/org/apache/predictionio/annotation/DeveloperApi.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package org.apache.predictionio.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * A lower-level, unstable API intended for developers.
- *
- * Developer API's might change or be removed in minor versions of Spark.
- *
- * NOTE: If there exists a Scaladoc comment that immediately precedes this
- * annotation, the first line of the comment must be ":: DeveloperApi ::" with
- * no trailing blank line. This is because of the known issue that Scaladoc
- * displays only either the annotation or the comment, whichever comes first.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,
-        ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE,
-        ElementType.PACKAGE})
-public @interface DeveloperApi {}

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/common/src/main/scala/org/apache/predictionio/annotation/Experimental.java
----------------------------------------------------------------------
diff --git a/common/src/main/scala/org/apache/predictionio/annotation/Experimental.java b/common/src/main/scala/org/apache/predictionio/annotation/Experimental.java
deleted file mode 100644
index 4f10eb2..0000000
--- a/common/src/main/scala/org/apache/predictionio/annotation/Experimental.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-package org.apache.predictionio.annotation;
-
-import java.lang.annotation.*;
-
-/**
- * An experimental user-facing API.
- *
- * Experimental API's might change or be removed, or be adopted as first-class
- * API's.
- *
- * NOTE: If there exists a Scaladoc comment that immediately precedes this
- * annotation, the first line of the comment must be ":: Experimental ::" with
- * no trailing blank line. This is because of the known issue that Scaladoc
- * displays only either the annotation or the comment, whichever comes first.
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,
-  ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.LOCAL_VARIABLE,
-  ElementType.PACKAGE})
-public @interface Experimental {}

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/data/src/main/scala/org/apache/predictionio/data/storage/DataMap.scala
----------------------------------------------------------------------
diff --git a/data/src/main/scala/org/apache/predictionio/data/storage/DataMap.scala b/data/src/main/scala/org/apache/predictionio/data/storage/DataMap.scala
index 666f3bb..2eca6cc 100644
--- a/data/src/main/scala/org/apache/predictionio/data/storage/DataMap.scala
+++ b/data/src/main/scala/org/apache/predictionio/data/storage/DataMap.scala
@@ -35,8 +35,9 @@ case class DataMapException(msg: String, cause: Exception)
 
 /** A DataMap stores properties of the event or entity. Internally it is a Map
   * whose keys are property names and values are corresponding JSON values
-  * respectively. Use the [[get]] method to retrieve the value of a mandatory
-  * property or use [[getOpt]] to retrieve the value of an optional property.
+  * respectively. Use the [[get[T](name: String,clazz: Class[T])]] method to
+  * retrieve the value of a mandatory property or use [[getOpt]] to retrieve the
+  * value of an optional property.
   *
   * @param fields Map of property name to JValue
   * @group Event Data

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/docs/scaladoc/rootdoc.txt
----------------------------------------------------------------------
diff --git a/docs/scaladoc/rootdoc.txt b/docs/scaladoc/rootdoc.txt
index 00db0ed..3b45317 100644
--- a/docs/scaladoc/rootdoc.txt
+++ b/docs/scaladoc/rootdoc.txt
@@ -1,4 +1,4 @@
-This is the API documentation of PredictionIO.
+This is the API documentation of Apache PredictionIO (incubating).
 
 == Package Structure ==
 

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/project/build.properties
----------------------------------------------------------------------
diff --git a/project/build.properties b/project/build.properties
index 748703f..27e88aa 100644
--- a/project/build.properties
+++ b/project/build.properties
@@ -1 +1 @@
-sbt.version=0.13.7
+sbt.version=0.13.13

http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/205c5a73/project/unidoc.sbt
----------------------------------------------------------------------
diff --git a/project/unidoc.sbt b/project/unidoc.sbt
index 0605421..7700b32 100644
--- a/project/unidoc.sbt
+++ b/project/unidoc.sbt
@@ -1 +1 @@
-addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.3.2")
+addSbtPlugin("com.eed3si9n" % "sbt-unidoc" % "0.3.3")


[09/12] incubator-predictionio git commit: [MINOR] Classification template based on LingPipe

Posted by do...@apache.org.
[MINOR] Classification template based on LingPipe

Closes #299


Project: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/commit/2f05303f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/tree/2f05303f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-predictionio/diff/2f05303f

Branch: refs/heads/develop
Commit: 2f05303f3c59d7631c3c6f955c453f42e5f22129
Parents: 4fe5f25
Author: Hari Charan Ayada <hc...@scalepoint.com>
Authored: Tue Jan 24 09:50:15 2017 -0800
Committer: Donald Szeto <do...@apache.org>
Committed: Tue Jan 24 09:50:15 2017 -0800

----------------------------------------------------------------------
 docs/manual/source/gallery/templates.yaml | 12 ++++++++++++
 1 file changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-predictionio/blob/2f05303f/docs/manual/source/gallery/templates.yaml
----------------------------------------------------------------------
diff --git a/docs/manual/source/gallery/templates.yaml b/docs/manual/source/gallery/templates.yaml
index e411ac3..f375910 100644
--- a/docs/manual/source/gallery/templates.yaml
+++ b/docs/manual/source/gallery/templates.yaml
@@ -125,6 +125,18 @@
     pio_min_version: 0.9.2
 
 - template:
+    name: Classification
+    repo: "https://github.com/haricharan123/PredictionIo-lingpipe-MultiLabelClassification"
+    description: |-
+      This engine template is an almost-complete implementation of an engine meant to used with PredictionIO. This multi label Classification Engine Template has integrated Lingpipe (http://alias-i.com/lingpipe/) algorithm by default.
+    tags: [classification]
+    type: Parallel
+    language: Java
+    license: "Apache Licence 2.0"
+    status: stable
+    pio_min_version: 0.9.5
+
+- template:
     name: Content Based SVD Item Similarity Engine
     repo: "https://github.com/alexice/template-scala-parallel-svd-item-similarity"
     description: |-