http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/5f9e42bc/community/contribute-documentation/index.html
----------------------------------------------------------------------
diff --git a/community/contribute-documentation/index.html 
b/community/contribute-documentation/index.html
deleted file mode 100644
index 05973ca..0000000
--- a/community/contribute-documentation/index.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html><html><head><title>Contribute Documentation</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute Documentation"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-documentation/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-3a3867f7.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.o
 rg/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 col-xs-11">
 <div class="hidden-md hidden-lg" 
id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
Documentation</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wra
 pper" class="col-md-3"><nav id="nav-main"><ul><li class="level-1"><a 
class="expandible" href="/"><span>Apache PredictionIO (incubating) 
Documentation</span></a><ul><li class="level-2"><a class="final" 
href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App
 </span></a><ul><li class="level-2"><a class="final" 
href="/appintegration/"><span>App Integration Overview</span></a></li><li 
class="level-2"><a class="expandible" href="/sdk/"><span>List of 
SDKs</span></a><ul><li class="level-3"><a class="final" 
href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
SDK</span></a></li><li class="level-3"><a class="final" 
href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
class="level-3"><a class="final" href="/sdk/community/"><span>Community Powered 
SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
Service</span></a></li><li class="level-2"><a class="final" 
href="/cli/#engine-commands"><span>Engine Command-line 
Interface</span></a></li><l
 i class="level-2"><a class="final" href="/deploy/monitoring/"><span>Monitoring 
Engine</span></a></li><li class="level-2"><a class="final" 
href="/deploy/engineparams/"><span>Setting Engine Parameters</span></a></li><li 
class="level-2"><a class="final" href="/deploy/enginevariants/"><span>Deploying 
Multiple Engine Variants</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Customizing an Engine</span></a><ul><li 
class="level-2"><a class="final" href="/customize/"><span>Learning 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/dase/"><span>Implement DASE</span></a></li><li 
class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a c
 lass="final" href="/datacollection/"><span>Event Server 
Overview</span></a></li><li class="level-2"><a class="final" 
href="/cli/#event-server-commands"><span>Event Server Command-line 
Interface</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</sp
 an></a><ul><li class="level-2"><a class="final" 
href="/algorithm/"><span>Built-in Algorithm Libraries</span></a></li><li 
class="level-2"><a class="final" href="/algorithm/switch/"><span>Switching to 
Another Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation Metrics</span></a>
 </li><li class="level-2"><a class="final" 
href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class
 ="final" href="/demo/community/"><span>Community Contributed 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final active" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="le
 vel-2"><a class="final" href="/resources/faq/"><span>FAQs</span></a></li><li 
class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute 
Documentation</span></li></ul></div><div id="page-title"><h1>Contribute 
Documentation</h1></div></div><div id="table-of-content-wrapper"><h5>On thi
 s page</h5><aside id="table-of-contents"><ul> <li> <a 
href="#how-to-write-documentation">How to Write Documentation</a> </li> <li> <a 
href="#branching">Branching</a> </li> <li> <a 
href="#installing-locally">Installing Locally</a> </li> <li> <a 
href="#starting-the-server">Starting the Server</a> </li> <li> <a 
href="#building-the-site">Building the Site</a> </li> <li> <a 
href="#styleguide">Styleguide</a> </li> <li> <a 
href="#important-files">Important Files</a> </li> <li> <a 
href="#going-live">Going Live</a> </li> <li> <a 
href="#checking-the-site">Checking the Site</a> </li> <li> <a 
href="#license">License</a> </li> </ul> </aside><hr/><a id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-documentation.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/"
 >Getting Involved</a><span class="spacer">&gt;</span></li><li><span 
 >class="last">Contribute Documentation</span></li></ul></div><div 
 >id="page-title"><h1>Contribute Documentation</h1></div></div><div 
 >class="content"><h2 id='how-to-write-documentation' 
 >class='header-anchors'>How to Write Documentation</h2><p>You can help improve 
 >the Apache PredictionIO (incubating) documentation by submitting tutorials, 
 >writing how-tos, fixing errors, and adding missing information. You can edit 
 >any page live on <a 
 >href="https://github.com/apache/incubator-predictionio";>GitHub</a> by 
 >clicking the pencil icon on any page or open a <a 
 >href="https://help.github.com/articles/creating-a-pull-request/";>Pull 
 >Request</a>.</p><h2 id='branching' 
 >class='header-anchors'>Branching</h2><p>Use the <code>livedoc</code> branch 
 >if you want to update the current documentation.</p><p>Use the 
 ><code>develop</code> branch if you want to write documentation for the next 
 >release.</p><h2 id='installing-locally' class='header-a
 nchors'>Installing Locally</h2><p>Apache PredictionIO (incubating) 
documentation uses <a href="http://middlemanapp.com/";>Middleman</a> and is 
hosted on Apache.</p><p><a href="http://rubygems.org/";>Gems</a> are managed 
with <a href="http://bundler.io/";>Bundler</a>. Front end code with <a 
href="http://bower.io/";>Bower</a>.</p><p>Requires <a 
href="https://www.ruby-lang.org/en/";>Ruby</a> 2.1 or greater. We recommend <a 
href="http://rvm.io/";>RVM</a> or <a 
href="https://github.com/sstephenson/rbenv";>rbenv</a>.</p><div 
class="alert-message warning"><p><strong>OS X</strong> users you will need to 
install <a href="https://developer.apple.com/xcode/downloads/";>Xcode Command 
Line Tools</a> with: <code>$ xcode-select --install</code> 
first.</p></div><p>You can install everything with the following 
commands:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
-2
-3
-4
-5</pre></td><td class="code"><pre><span class="gp">$ </span><span 
class="nb">cd </span>docs/manual
-<span class="gp">$ </span>gem install bundler
-<span class="gp">$ </span>bundle install
-<span class="gp">$ </span>npm install -g bower
-<span class="gp">$ </span>bower install
-</pre></td></tr></tbody></table> </div> <h2 id='starting-the-server' 
class='header-anchors'>Starting the Server</h2><p>Start the server 
with:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>bundle <span class="nb">exec </span>middleman server
-</pre></td></tr></tbody></table> </div> <p>This will start the local web 
server at <a href="http://localhost:4567/";>localhost:4567</a>.</p><h2 
id='building-the-site' class='header-anchors'>Building the Site</h2><p>Build 
the site with:</p><div class="highlight shell"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
</span>bundle <span class="nb">exec </span>middleman build
-</pre></td></tr></tbody></table> </div> <h2 id='styleguide' 
class='header-anchors'>Styleguide</h2><p>Please follow this styleguide for any 
documentation contributions.</p><h3 id='text' 
class='header-anchors'>Text</h3><p>View our <a href="/samples/">Sample 
Typography</a> page for all posible styles.</p><h3 id='headings' 
class='header-anchors'>Headings</h3><p>The main heading <code>h1</code> is 
derived from the title data attribute:</p><div class="highlight shell"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
-2
-3</pre></td><td class="code"><pre>---
-title: Page Title
----
-</pre></td></tr></tbody></table> </div> <p>Start other headings with 
<code>h2</code>. Prefer the <code>## Heading</code> format in Markdown.</p><h3 
id='links' class='header-anchors'>Links</h3><p>Internal links:</p> <ul> 
<li>Should start with / (relative to root).</li> <li>Should end with / (S3 
requirement).</li> <li>Should <strong>not</strong> end with .html.</li> </ul> 
<p>Following these rules helps keep everything consistent and allows our 
version parser to correctly version links. Middleman is configured for 
directory indexes. Linking to a file in <code>sources/samples/index.html</code> 
should be done with <code>[Title](/sample/)</code>.</p><div class="highlight 
markdown"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6</pre></td><td class="code"><pre><span class="p">[</span><span 
class="nv">Good</span><span class="p">](</span><span 
class="sx">/path/to/page/</span><span class="p">)</span>
-
-<span class="p">[</span><span class="nv">Bad</span><span 
class="p">](</span><span class="sx">../page</span><span class="p">)</span> Not 
relative to root!
-<span class="p">[</span><span class="nv">Bad</span><span 
class="p">](</span><span class="sx">page.html</span><span class="p">)</span> Do 
not use the .html extension!
-<span class="p">[</span><span class="nv">Bad</span><span 
class="p">](</span><span class="sx">/path/to/page</span><span 
class="p">)</span> Does not end with a /.
-
-</pre></td></tr></tbody></table> </div> <h3 id='images' 
class='header-anchors'>Images</h3><p>Images should be exactly 900px wide. <a 
href="https://chrome.google.com/webstore/detail/window-resizer/kkelicaakdanhinjdeammmilcgefonfh";>Chrome
 Window Resizer</a> is an excellent extension for browser resizing.</p><div 
class="alert-message warning"><p><strong>OS X</strong> users please <a 
href="http://www.idownloadblog.com/2014/08/03/how-to-remove-the-shadow-window-screenshots-on-mac-os-x/";>Disable
 Shadows</a> before taking a screenshot.</p></div><p>Images should only show 
the relevant tab/terminal. Hide any additional toolbars.</p><p>Images will 
<strong>automatically scale</strong> by default. If you want an image to remain 
a set size you can use a raw HTML tag like this:</p><div class="highlight 
shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1</pre></td><td 
class="code"><pre>&lt;img <span class="nv">src</span><span cla
 ss="o">=</span><span class="s2">"/images/path/to/image.png"</span> <span 
class="nv">alt</span><span class="o">=</span><span class="s2">"Image"</span> 
<span class="nv">class</span><span class="o">=</span><span 
class="s2">"static"</span> /&gt;
-</pre></td></tr></tbody></table> </div> <h3 id='code-blocks' 
class='header-anchors'>Code Blocks</h3><p>Fenced code blocks are created using 
the <code>&#96;&#96;&#96;language</code> format.</p><p>A example of each 
language is available on our <a href="/samples/languages">Language Samples</a> 
page.</p><h3 id='code-tabs' class='header-anchors'>Code Tabs</h3><p>Code tabs 
use the following HTML format:</p><div class="highlight html"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8</pre></td><td class="code"><pre><span class="nt">&lt;div</span> <span 
class="na">class=</span><span class="s">"tabs"</span><span 
class="nt">&gt;</span>
-  <span class="nt">&lt;div</span> <span class="na">data-tab=</span><span 
class="s">"Tab Title"</span> <span class="na">data-lang=</span><span 
class="s">"language"</span><span class="nt">&gt;</span>
-    Markdown, code blocks, or HTML is OK inside a tab.
-  <span class="nt">&lt;/div&gt;</span>
-  <span class="nt">&lt;div</span> <span class="na">data-tab=</span><span 
class="s">"Second Tab"</span> <span class="na">data-lang=</span><span 
class="s">"optional"</span><span class="nt">&gt;</span>
-    ...
-  <span class="nt">&lt;/div&gt;</span>
-<span class="nt">&lt;/div&gt;</span>
-</pre></td></tr></tbody></table> </div> <p>You can see an example of this on 
our <a href="/samples/tabs/">Tab Samples</a> page.</p><h3 id='seo' 
class='header-anchors'>SEO</h3><p>You can hide a page from the 
<code>sitemap.xml</code> file by setting the pages <a 
href="http://middlemanapp.com/basics/frontmatter/";>Frontmater</a> like 
this:</p><div class="highlight markdown"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
-2
-3
-4</pre></td><td class="code"><pre><span class="nn">---</span>
-<span class="s">title</span><span class="pi">:</span> <span class="s">Secret 
Page</span>
-<span class="s">hidden</span><span class="pi">:</span> <span 
class="s">true</span>
-<span class="nn">---</span>
-</pre></td></tr></tbody></table> </div> <h2 id='important-files' 
class='header-anchors'>Important Files</h2> <table><thead> <tr> 
<th>Description</th> <th>File</th> </tr> </thead><tbody> <tr> <td>Left side 
navigation.</td> <td><code>data/nav/main.yml</code></td> </tr> <tr> <td>Main 
site layout.</td> <td><code>source/layouts/layout.html.slim</code></td> </tr> 
<tr> <td>Custom Markdown renderer based on <a 
href="https://github.com/vmg/redcarpet";>Redcarpet</a>.</td> 
<td><code>lib/custom_renderer.rb</code></td> </tr> <tr> <td>Custom TOC 
helper.</td> <td><code>helpers/table_of_contents_helpers.rb</code></td> </tr> 
</tbody></table> <h3 id='versions' 
class='header-anchors'>Versions</h3><p>Various site wide versions are defined 
in <code>data/versions.yml</code> and embedded with ERB like <code>&lt;%= 
data.versions.pio %&gt;</code>.</p><div class="alert-message note"><p>Files 
must end with a <code>.erb</code> extension to be processed as 
ERB.</p></div><h2 id='going-live' class='header-anchors'
 >Going Live</h2><p>Pushing to the <code>livedoc</code> branch will update <a 
 >href="http://predictionio.incubator.apache.org";>http://predictionio.incubator.apache.org</a>
 > in about 5 minutes.</p><p>You can check the progress of each build on <a 
 >href="https://builds.apache.org/";>Apache&#39;s Jenkins</a>.</p><div 
 >class="highlight shell"><table style="border-spacing: 0"><tbody><tr><td 
 >class="gutter gl" style="text-align: right"><pre 
 >class="lineno">1</pre></td><td class="code"><pre><span class="gp">$ 
 ></span>git push origin livedoc
-</pre></td></tr></tbody></table> </div> <h2 id='checking-the-site' 
class='header-anchors'>Checking the Site</h2><div class="alert-message 
warning"><p>The check rake task is still in <strong>beta</strong> however it is 
extremely useful for catching accidental errors.</p></div><div class="highlight 
shell"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2</pre></td><td class="code"><pre><span class="gp">$ </span>bundle <span 
class="nb">exec </span>middleman build
-<span class="gp">$ </span>bundle <span class="nb">exec </span>rake check
-</pre></td></tr></tbody></table> </div> <p>The <code>rake check</code> task 
parses each HTML page in the <code>build</code> folder and checks it for common 
errors including 404s.</p><h2 id='license' 
class='header-anchors'>License</h2><p>Documentation is under a <a 
href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License Version 
2.0</a>.</p></div></div></div></div><footer><div class="container"><div 
class="seperator"></div><div class="row"><div class="col-md-6 col-xs-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a 
href="//docs.prediction.io/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictionio" 
target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" target="blank">Stackov
 erflow</a></li></ul></div></div><div class="col-md-6 col-xs-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li><a href="//issues.apache.org/jira/browse/PIO" 
target="blank">Bug Tracker</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" 
src="/images/logos/logo-white-d1e9c6e6.png"/></div><div 
id="social-icons-wrapper"><a class="github-button" 
href="https://github.com/apache/incubator-predictionio"; data-style="mega" 
data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apac
 he/incubator-predictionio#stargazers_count" data-count-aria-label="# 
stargazers on GitHub" aria-label="Star apache/incubator-predictionio on 
GitHub">Star</a> <a class="github-button" 
href="https://github.com/apache/incubator-predictionio/fork"; 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network" 
data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on GitHub">Fork</a> <script id="github-bjs" 
async="" defer="" src="https://buttons.github.io/buttons.js";></script><a 
href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on 
Twitter" src="/images/icons/twitter-ea9dc152.png"/></a> <a 
href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO on 
Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n
 ]=w[n]||function(){
-(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
-e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
-})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
-
-_st('install','HaUfpXXV87xoB_zzCQ45');</script><script 
src="/javascripts/application-f819cf19.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/5f9e42bc/community/contribute-documentation/index.html.gz
----------------------------------------------------------------------
diff --git a/community/contribute-documentation/index.html.gz 
b/community/contribute-documentation/index.html.gz
deleted file mode 100644
index 589aaca..0000000
Binary files a/community/contribute-documentation/index.html.gz and /dev/null 
differ

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/5f9e42bc/community/contribute-sdk/index.html
----------------------------------------------------------------------
diff --git a/community/contribute-sdk/index.html 
b/community/contribute-sdk/index.html
deleted file mode 100644
index 086f35d..0000000
--- a/community/contribute-sdk/index.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!DOCTYPE html><html><head><title>Contribute a SDK</title><meta 
charset="utf-8"/><meta content="IE=edge,chrome=1" 
http-equiv="X-UA-Compatible"/><meta name="viewport" 
content="width=device-width, initial-scale=1.0"/><meta class="swiftype" 
name="title" data-type="string" content="Contribute a SDK"/><link 
rel="canonical" 
href="https://docs.prediction.io/community/contribute-sdk/"/><link 
href="/images/favicon/normal-b330020a.png" rel="shortcut icon"/><link 
href="/images/favicon/apple-c0febcf2.png" rel="apple-touch-icon"/><link 
href="//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
 rel="stylesheet"/><link 
href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" 
rel="stylesheet"/><link href="/stylesheets/application-3a3867f7.css" 
rel="stylesheet" type="text/css"/><script 
src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script><script
 src="//cdn.mathjax.org/mathjax/latest/MathJax.
 js?config=TeX-AMS-MML_HTMLorMML"></script><script 
src="//use.typekit.net/pqo0itb.js"></script><script>try{Typekit.load({ async: 
true });}catch(e){}</script></head><body><div id="global"><header><div 
class="container" id="header-wrapper"><div class="row"><div 
class="col-sm-12"><div id="logo-wrapper"><span id="drawer-toggle"></span><a 
href="#"></a><a href="http://predictionio.incubator.apache.org/";><img 
alt="PredictionIO" id="logo" 
src="/images/logos/logo-ee2b9bb3.png"/></a></div><div id="menu-wrapper"><div 
id="pill-wrapper"><a class="pill left" 
href="/gallery/template-gallery">TEMPLATES</a> <a class="pill right" 
href="//github.com/apache/incubator-predictionio/">OPEN 
SOURCE</a></div></div><img class="mobile-search-bar-toggler hidden-md 
hidden-lg" 
src="/images/icons/search-glass-704bd4ff.png"/></div></div></div></header><div 
id="search-bar-row-wrapper"><div class="container-fluid" 
id="search-bar-row"><div class="row"><div class="col-md-9 col-sm-11 
col-xs-11"><div class="hidden-md hidd
 en-lg" id="mobile-page-heading-wrapper"><p>PredictionIO Docs</p><h4>Contribute 
a SDK</h4></div><h4 class="hidden-sm hidden-xs">PredictionIO 
Docs</h4></div><div class="col-md-3 col-sm-1 col-xs-1 hidden-md hidden-lg"><img 
id="left-menu-indicator" 
src="/images/icons/down-arrow-dfe9f7fe.png"/></div><div class="col-md-3 
col-sm-12 col-xs-12 swiftype-wrapper"><div class="swiftype"><form 
class="search-form"><img class="search-box-toggler hidden-xs hidden-sm" 
src="/images/icons/search-glass-704bd4ff.png"/><div class="search-box"><img 
src="/images/icons/search-glass-704bd4ff.png"/><input type="text" 
id="st-search-input" class="st-search-input" placeholder="Search 
Doc..."/></div><img class="swiftype-row-hider hidden-md hidden-lg" 
src="/images/icons/drawer-toggle-active-fcbef12a.png"/></form></div></div><div 
class="mobile-left-menu-toggler hidden-md 
hidden-lg"></div></div></div></div><div id="page" class="container-fluid"><div 
class="row"><div id="left-menu-wrapper" class="col-md-3"><nav id="na
 v-main"><ul><li class="level-1"><a class="expandible" href="/"><span>Apache 
PredictionIO (incubating) Documentation</span></a><ul><li class="level-2"><a 
class="final" href="/"><span>Welcome to Apache PredictionIO 
(incubating)</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Started</span></a><ul><li class="level-2"><a 
class="final" href="/start/"><span>A Quick Intro</span></a></li><li 
class="level-2"><a class="final" href="/install/"><span>Installing Apache 
PredictionIO (incubating)</span></a></li><li class="level-2"><a class="final" 
href="/start/download/"><span>Downloading an Engine Template</span></a></li><li 
class="level-2"><a class="final" href="/start/deploy/"><span>Deploying Your 
First Engine</span></a></li><li class="level-2"><a class="final" 
href="/start/customize/"><span>Customizing the 
Engine</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Integrating with Your App</span></a><ul><li class="level-2"
 ><a class="final" href="/appintegration/"><span>App Integration 
 >Overview</span></a></li><li class="level-2"><a class="expandible" 
 >href="/sdk/"><span>List of SDKs</span></a><ul><li class="level-3"><a 
 >class="final" href="/sdk/java/"><span>Java & Android SDK</span></a></li><li 
 >class="level-3"><a class="final" href="/sdk/php/"><span>PHP 
 >SDK</span></a></li><li class="level-3"><a class="final" 
 >href="/sdk/python/"><span>Python SDK</span></a></li><li class="level-3"><a 
 >class="final" href="/sdk/ruby/"><span>Ruby SDK</span></a></li><li 
 >class="level-3"><a class="final" href="/sdk/community/"><span>Community 
 >Powered SDKs</span></a></li></ul></li></ul></li><li class="level-1"><a 
 >class="expandible" href="#"><span>Deploying an Engine</span></a><ul><li 
 >class="level-2"><a class="final" href="/deploy/"><span>Deploying as a Web 
 >Service</span></a></li><li class="level-2"><a class="final" 
 >href="/cli/#engine-commands"><span>Engine Command-line 
 >Interface</span></a></li><li class="level-2"><a class="final"
  href="/deploy/monitoring/"><span>Monitoring Engine</span></a></li><li 
class="level-2"><a class="final" href="/deploy/engineparams/"><span>Setting 
Engine Parameters</span></a></li><li class="level-2"><a class="final" 
href="/deploy/enginevariants/"><span>Deploying Multiple Engine 
Variants</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Customizing an Engine</span></a><ul><li class="level-2"><a 
class="final" href="/customize/"><span>Learning DASE</span></a></li><li 
class="level-2"><a class="final" href="/customize/dase/"><span>Implement 
DASE</span></a></li><li class="level-2"><a class="final" 
href="/customize/troubleshooting/"><span>Troubleshooting Engine 
Development</span></a></li><li class="level-2"><a class="final" 
href="/api/current/#package"><span>Engine Scala 
APIs</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Collecting and Analyzing Data</span></a><ul><li 
class="level-2"><a class="final" href="/datacollection
 /"><span>Event Server Overview</span></a></li><li class="level-2"><a 
class="final" href="/cli/#event-server-commands"><span>Event Server 
Command-line Interface</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventapi/"><span>Collecting Data with 
REST/SDKs</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/eventmodel/"><span>Events Modeling</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/webhooks/"><span>Unifying Multichannel Data with 
Webhooks</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/channel/"><span>Channel</span></a></li><li 
class="level-2"><a class="final" 
href="/datacollection/batchimport/"><span>Importing Data in 
Batch</span></a></li><li class="level-2"><a class="final" 
href="/datacollection/analytics/"><span>Using Analytics 
Tools</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Choosing an Algorithm(s)</span></a><ul><li class="level-2"><a 
 class="final" href="/algorithm/"><span>Built-in Algorithm 
Libraries</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/switch/"><span>Switching to Another 
Algorithm</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/multiple/"><span>Combining Multiple 
Algorithms</span></a></li><li class="level-2"><a class="final" 
href="/algorithm/custom/"><span>Adding Your Own 
Algorithms</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>ML Tuning and Evaluation</span></a><ul><li class="level-2"><a 
class="final" href="/evaluation/"><span>Overview</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/paramtuning/"><span>Hyperparameter Tuning</span></a></li><li 
class="level-2"><a class="final" 
href="/evaluation/evaluationdashboard/"><span>Evaluation 
Dashboard</span></a></li><li class="level-2"><a class="final" 
href="/evaluation/metricchoose/"><span>Choosing Evaluation 
Metrics</span></a></li><li class="level-2"><a class=
 "final" href="/evaluation/metricbuild/"><span>Building Evaluation 
Metrics</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>System Architecture</span></a><ul><li class="level-2"><a 
class="final" href="/system/"><span>Architecture Overview</span></a></li><li 
class="level-2"><a class="final" href="/system/anotherdatastore/"><span>Using 
Another Data Store</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Engine Template Gallery</span></a><ul><li 
class="level-2"><a class="final" 
href="/gallery/template-gallery/"><span>Browse</span></a></li><li 
class="level-2"><a class="final" 
href="/community/submit-template/"><span>Submit your Engine as a 
Template</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Demo Tutorials</span></a><ul><li class="level-2"><a 
class="final" href="/demo/tapster/"><span>Comics Recommendation 
Demo</span></a></li><li class="level-2"><a class="final" 
href="/demo/community/"><
 span>Community Contributed Demo</span></a></li><li class="level-2"><a 
class="final" href="/demo/textclassification/"><span>Text Classification Engine 
Tutorial</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="/community/"><span>Getting Involved</span></a><ul><li class="level-2"><a 
class="final" href="/community/contribute-code/"><span>Contribute 
Code</span></a></li><li class="level-2"><a class="final" 
href="/community/contribute-documentation/"><span>Contribute 
Documentation</span></a></li><li class="level-2"><a class="final active" 
href="/community/contribute-sdk/"><span>Contribute a SDK</span></a></li><li 
class="level-2"><a class="final" 
href="/community/contribute-webhook/"><span>Contribute a 
Webhook</span></a></li><li class="level-2"><a class="final" 
href="/community/projects/"><span>Community 
Projects</span></a></li></ul></li><li class="level-1"><a class="expandible" 
href="#"><span>Getting Help</span></a><ul><li class="level-2"><a class="final" 
href="/res
 ources/faq/"><span>FAQs</span></a></li><li class="level-2"><a class="final" 
href="/support/"><span>Support</span></a></li></ul></li><li class="level-1"><a 
class="expandible" href="#"><span>Resources</span></a><ul><li 
class="level-2"><a class="final" href="/resources/intellij/"><span>Developing 
Engines with IntelliJ IDEA</span></a></li><li class="level-2"><a class="final" 
href="/resources/upgrade/"><span>Upgrade Instructions</span></a></li><li 
class="level-2"><a class="final" 
href="/resources/glossary/"><span>Glossary</span></a></li></ul></li></ul></nav></div><div
 class="col-md-9 col-sm-12"><div class="content-header hidden-md 
hidden-lg"><div id="breadcrumbs" class="hidden-sm hidden xs"><ul><li><a 
href="/community/">Getting Involved</a><span 
class="spacer">&gt;</span></li><li><span class="last">Contribute a 
SDK</span></li></ul></div><div id="page-title"><h1>Contribute a 
SDK</h1></div></div><div id="table-of-content-wrapper"><h5>On this 
page</h5><aside id="table-of-contents"><ul> <li>
  <a href="#event-client">Event Client</a> </li> <li> <a 
href="#engine-client">Engine Client</a> </li> <li> <a 
href="#testing-your-sdk">Testing Your SDK</a> </li> </ul> </aside><hr/><a 
id="edit-page-link" 
href="https://github.com/apache/incubator-predictionio/tree/livedoc/docs/manual/source/community/contribute-sdk.html.md";><img
 src="/images/icons/edit-pencil-d6c1bb3d.png"/>Edit this page</a></div><div 
class="content-header hidden-sm hidden-xs"><div id="breadcrumbs" 
class="hidden-sm hidden xs"><ul><li><a href="/community/">Getting 
Involved</a><span class="spacer">&gt;</span></li><li><span 
class="last">Contribute a SDK</span></li></ul></div><div 
id="page-title"><h1>Contribute a SDK</h1></div></div><div class="content"><p>A 
SDK should provide convenient methods for client applications to easily record 
users&#39; behaviors in Apache PredictionIO (incubating)&#39;s Event Server and 
also query recommendations from the ML Engines. Therefore, a SDK typically has 
2 corresponding clients: <co
 de>Event Client</code> and <code>Engine Client</code>.</p><p>The following 
guideline bases on the REST API provided by Apache PredictionIO 
(incubating)&#39;s Event Client which details can be found <a 
href="http://docs.prediction.io/datacollection/eventapi/";>here</a>.</p><h2 
id='event-client' class='header-anchors'>Event Client</h2><p>Because the Event 
Server has only 1 connection point, the <code>Event Client</code> needs to 
implement this core request first. The core request has the following 
rules.</p> <ul> <li><p><strong>URL</strong>: <code>&lt;base 
URL&gt;/events.json?accessKey=&lt;your access key&gt;</code> (e.g. <a 
href="http://localhost:7070/events.json?accessKey=1234567890";>http://localhost:7070/events.json?accessKey=1234567890</a>)</p></li>
 <li><p><strong>Request</strong>: <code>POST</code> + JSON data. Please refer 
to the <a href="http://docs.prediction.io/datacollection/eventapi/";>Event 
Creation API</a> for the details on the fields of the JSON data 
object.</p></li> <li>
 <p><strong>Response</strong>:</p> <ul> <li><strong>Success</strong>: status 
code <code>201</code> with a JSON result containing the 
<code>eventId</code>.</li> <li><strong>Failure</strong>: a JSON result 
containing a <code>message</code> field describing the error. <ul> <li>Status 
code <code>401</code>: invalid access key.</li> <li>Status code 
<code>400</code>: fail to parse the JSON request e.g. missing required fields 
like <code>event</code>, or invalid <code>eventTime</code> format.</li> 
</ul></li> </ul></li> </ul> <p>Other convenient methods are just shortcut. They 
could simply build the event&#39;s parameters and call the core request. 
<code>Event Client</code> should support the following 7 shorthand 
operations:</p> <ul> <li><p><strong>User entities</strong></p> <ul> 
<li><p><strong>Sets properties of a user</strong>: with the JSON object</p><div 
class="highlight json"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno"
 >1
-2
-3
-4
-5
-6</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$set"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"user"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;user_ID&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"properties"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;properties&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> <li><p><strong>Unsets some 
properties of a user</strong>: with the JSON object</p><div class="highlight 
json"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$unset"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"user"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;user_ID&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"properties"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;properties&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> <li><p><strong>Delete a 
user</strong>: with the JSON object</p><div class="highlight json"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
-2
-3
-4
-5</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$delete"</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"user"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;user_ID&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> </ul></li> 
<li><p><strong>Item entities</strong></p> <ul> <li><p><strong>Sets properties 
of an item</strong>: with the JSON object</p><div class="highlight json"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
-2
-3
-4
-5
-6</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$set"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"item"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;item_ID&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"properties"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;properties&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> <li><p><strong>Unsets some 
properties of an item</strong>: with the JSON object</p><div class="highlight 
json"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$unset"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"item"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;item_ID&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"properties"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;properties&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> <li><p><strong>Delete an 
item</strong>: with the JSON object</p><div class="highlight json"><table 
style="border-spacing: 0"><tbody><tr><td class="gutter gl" style="text-align: 
right"><pre class="lineno">1
-2
-3
-4
-5</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"$delete"</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"item"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;item_ID&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> </ul></li> 
<li><p><strong>Others</strong></p> <ul> <li><p><strong>Record a user&#39;s 
action on some item</strong>: with the JSON object</p><div class="highlight 
json"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"event"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;event_name&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"entityType"</span><span class="p">:</span><span 
class="w"> </span><span class="s2">"user"</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"entityId"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;user_ID&gt;</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"targetEntityType"</span><span 
class="p">:</span><span class="w"> </span><span class="s2">"item"</span><span 
class="p">,</span><span class="w">
-    </span><span class="s2">"targetEntityId"</span><span 
class="p">:</span><span class="w"> </span><span 
class="err">&lt;item_ID&gt;</span><span class="p">,</span><span class="w">
-    </span><span class="s2">"properties"</span><span class="p">:</span><span 
class="w"> </span><span class="err">&lt;properties&gt;</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> </ul></li> </ul> <p>Again, 
please refer to the <a 
href="http://docs.prediction.io/datacollection/eventapi/";>API documentation</a> 
for explanations on the reversed events like <code>$set</code>, 
<code>$unset</code> or <code>$delete</code>.</p><div class="alert-message 
info"><p>The <code>eventTime</code> is optional but it is recommended that the 
client application should include time in the request. Therefore, it is best 
that the <code>Event Client</code> includes the time field if missing, before 
sending the event to the server.</p></div><h2 id='engine-client' 
class='header-anchors'>Engine Client</h2><p><code>Engine Client</code>&#39;s 
main job is to retrieve recommendation or prediction results from Apache 
PredictionIO (incubating)&#39;s Engines. It has only a few rules on the request 
and response type.</p> <ul> <li><p><strong>URL</strong>: <code>&lt;base 
URL&gt;/queries.json</code> (e.g. <a href="http://localhost:8000/queries.jso
 n">http://localhost:8000/queries.json</a>)</p></li> 
<li><p><strong>Request</strong>: <code>POST</code> + JSON data. For 
example,</p><div class="highlight json"><table style="border-spacing: 
0"><tbody><tr><td class="gutter gl" style="text-align: right"><pre 
class="lineno">1
-2
-3
-4</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"user"</span><span class="p">:</span><span 
class="w"> </span><span class="mi">1</span><span class="p">,</span><span 
class="w">
-    </span><span class="s2">"num"</span><span class="p">:</span><span 
class="w"> </span><span class="mi">4</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> 
<li><p><strong>Response</strong>:</p> <ul> <li><p><strong>Success</strong>: 
status code <code>200</code> with a JSON result object. For example,</p><div 
class="highlight json"><table style="border-spacing: 0"><tbody><tr><td 
class="gutter gl" style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13</pre></td><td class="code"><pre><span class="p">{</span><span class="w">
-    </span><span class="s2">"itemScores"</span><span class="p">:</span><span 
class="w"> </span><span class="p">[</span><span class="w">
-        </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"item"</span><span class="p">:</span><span 
class="w"> </span><span class="mi">39</span><span class="p">,</span><span 
class="w">
-            </span><span class="s2">"score"</span><span 
class="p">:</span><span class="w"> </span><span 
class="s2">"6.177719297832409"</span><span class="w">
-        </span><span class="p">},</span><span class="w">
-        </span><span class="p">{</span><span class="w">
-            </span><span class="s2">"item"</span><span class="p">:</span><span 
class="w"> </span><span class="mi">79</span><span class="p">,</span><span 
class="w">
-            </span><span class="s2">"score"</span><span 
class="p">:</span><span class="w"> </span><span 
class="s2">"5.931687319083594"</span><span class="w">
-        </span><span class="p">},</span><span class="w">
-        </span><span class="err">...</span><span class="w">
-    </span><span class="p">]</span><span class="w">
-</span><span class="p">}</span><span class="w">
-</span></pre></td></tr></tbody></table> </div></li> 
<li><p><strong>Failure</strong>: status code <code>400</code> e.g. fail to 
parse the query.</p></li> </ul></li> </ul> <p>The formats of JSON objects in 
both the request and response must be defined by the Apache PredictionIO 
(incubating)&#39;s Engine and are different across applications. The above 
examples are taken from the Recommendation Engine template in which the query 
and prediction results are defined as following.</p><div class="highlight 
scala"><table style="border-spacing: 0"><tbody><tr><td class="gutter gl" 
style="text-align: right"><pre class="lineno">1
-2
-3
-4
-5
-6
-7
-8</pre></td><td class="code"><pre><span class="k">case</span> <span 
class="k">class</span> <span class="nc">Query</span><span class="o">(</span>
-  <span class="n">user</span><span class="k">:</span> <span 
class="kt">String</span><span class="o">,</span>
-  <span class="n">num</span><span class="k">:</span> <span 
class="kt">Int</span>
-<span class="o">)</span> <span class="k">extends</span> <span 
class="nc">Serializable</span>
-
-<span class="k">case</span> <span class="k">class</span> <span 
class="nc">PredictedResult</span><span class="o">(</span>
-  <span class="n">itemScores</span><span class="k">:</span> <span 
class="kt">Array</span><span class="o">[</span><span 
class="kt">ItemScore</span><span class="o">]</span>
-<span class="o">)</span> <span class="k">extends</span> <span 
class="nc">Serializable</span>
-</pre></td></tr></tbody></table> </div> <h2 id='testing-your-sdk' 
class='header-anchors'>Testing Your SDK</h2><p>You can set up a local host 
Apache PredictionIO (incubating) environment to test your SDK. However, it is 
hard to set it up online to test your SDK automatically using services like 
Travis CI. In that case, you should consider using these lightweight <a 
href="https://github.com/minhtule/PredictionIO-Mock-Server";>mock servers</a>. 
Please see the instructions in the repo how to use it. It takes less than 5 
minutes!</p><p>That&#39;s it! We are looking forward to see your 
SDK!</p></div></div></div></div><footer><div class="container"><div 
class="seperator"></div><div class="row"><div class="col-md-6 col-xs-6 
footer-link-column"><div 
class="footer-link-column-row"><h4>Community</h4><ul><li><a 
href="//docs.prediction.io/install/" target="blank">Download</a></li><li><a 
href="//docs.prediction.io/" target="blank">Docs</a></li><li><a 
href="//github.com/apache/incubator-predictioni
 o" target="blank">GitHub</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to User Mailing List</a></li><li><a 
href="//stackoverflow.com/questions/tagged/predictionio" 
target="blank">Stackoverflow</a></li></ul></div></div><div class="col-md-6 
col-xs-6 footer-link-column"><div 
class="footer-link-column-row"><h4>Contribute</h4><ul><li><a 
href="//predictionio.incubator.apache.org/community/contribute-code/" 
target="blank">Contribute</a></li><li><a 
href="//github.com/apache/incubator-predictionio" target="blank">Source 
Code</a></li><li><a href="//issues.apache.org/jira/browse/PIO" 
target="blank">Bug Tracker</a></li><li><a 
href="mailto:[email protected]"; 
target="blank">Subscribe to Development Mailing 
List</a></li></ul></div></div></div></div><div id="footer-bottom"><div 
class="container"><div class="row"><div class="col-md-12"><div 
id="footer-logo-wrapper"><img alt="PredictionIO" src="/images/logos/logo-w
 hite-d1e9c6e6.png"/></div><div id="social-icons-wrapper"><a 
class="github-button" href="https://github.com/apache/incubator-predictionio"; 
data-style="mega" data-count-href="/apache/incubator-predictionio/stargazers" 
data-count-api="/repos/apache/incubator-predictionio#stargazers_count" 
data-count-aria-label="# stargazers on GitHub" aria-label="Star 
apache/incubator-predictionio on GitHub">Star</a> <a class="github-button" 
href="https://github.com/apache/incubator-predictionio/fork"; 
data-icon="octicon-git-branch" data-style="mega" 
data-count-href="/apache/incubator-predictionio/network" 
data-count-api="/repos/apache/incubator-predictionio#forks_count" 
data-count-aria-label="# forks on GitHub" aria-label="Fork 
apache/incubator-predictionio on GitHub">Fork</a> <script id="github-bjs" 
async="" defer="" src="https://buttons.github.io/buttons.js";></script><a 
href="//www.facebook.com/predictionio" target="blank"><img alt="PredictionIO on 
Twitter" src="/images/icons/twitter-ea9dc152.png"/><
 /a> <a href="//twitter.com/predictionio" target="blank"><img alt="PredictionIO 
on Facebook" src="/images/icons/facebook-5c57939c.png"/></a> 
</div></div></div></div></div></footer></div><script>(function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
-(w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
-e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
-})(window,document,'script','//s.swiftypecdn.com/install/v1/st.js','_st');
-
-_st('install','HaUfpXXV87xoB_zzCQ45');</script><script 
src="/javascripts/application-f819cf19.js"></script></body></html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-predictionio-site/blob/5f9e42bc/community/contribute-sdk/index.html.gz
----------------------------------------------------------------------
diff --git a/community/contribute-sdk/index.html.gz 
b/community/contribute-sdk/index.html.gz
deleted file mode 100644
index 8894968..0000000
Binary files a/community/contribute-sdk/index.html.gz and /dev/null differ

Reply via email to