blob: 565c9b1ea6fa7a750979daa7b7457e1901416176 [file] [log] [blame]
<!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-3598c7d7.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="header-nav-options-wrapper"><ul><li><a href="/">Install & Doc</a></li> <li><a href="/support">Support</a></li> </ul></div><div id="pill-wrapper"><a class="pill left" href="//templates.prediction.io/">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-wrapper" 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><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="http://templates.prediction.io"><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="level-2"><a class="final" href="/resources/faq/"><span>FAQs</span></a></li><li class="level-2"><a class="final" href="/support/"><span>Community Support</span></a></li><li class="level-2"><a class="final" href="/support/#enterprise-support"><span>Enterprise 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 this 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-anchors'>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</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
</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 class="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="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License</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:user-subscribe@predictionio.incubator.apache.org" 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:dev-subscribe@predictionio.incubator.apache.org" 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/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-5a24945b.js"></script></body></html>