diff --git a/api/adoc/browser_guide.adoc b/api/adoc/browser_guide.adoc
index 71847aadea7d8c3ce14cbfa0779adb2b935903d5..533ba2ea0a881659b5eec67f99d63c7295c71045 100644
--- a/api/adoc/browser_guide.adoc
+++ b/api/adoc/browser_guide.adoc
@@ -258,9 +258,62 @@ MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
 WITH p1, p2, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector
 WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity
 ORDER BY similarity DESC limit toInt({k_neighbors})
-WHERE similarity <> 0.0
 
 MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
-return from , to, s, sum(similarity * r.rating)/sum(abs(similarity)) as prediction
+RETURN from , to, s, sum(similarity * r.rating)/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
+ORDER BY prediction DESC LIMIT toInt({top_n})
+----
+
+== Get Top-N Prediction for User with Pearson-Similarity + Mean-Centering + kNN
+:k_neighbors: pass:a['<span value-key="k_neighbors">5</span>']
+:top_n: pass:a['<span value-key="top_n">5</span>']
+:user: pass:a['<span value-key="user">Björn</span>']
+
+
+++++
+Find Top-<input style="display:inline;width:30%;" value-for="top_n" class="form-control" value="5" size="40"> Predictions for <input
+style="display:inline;width:30%;" value-for="user" class="form-control" value="Björn" size="40"> in the <input style="display:inline;width:30%;"
+value-for="k_neighbors" class="form-control" value="5" size="40">-NN
+++++
+
+[source, cypher,subs=attributes]
+----
+MATCH (p1:User {public_nickname: {user}})-[l:LIKES]->(statement)
+WITH p1, algo.similarity.asVector(statement, l.rating) AS p1Vector, avg(l.rating) as u1_avg
+
+MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
+WITH p1, p2, u1_avg, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector, avg(l.rating) as u2_avg
+WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity, u1_avg, u2_avg
+ORDER BY similarity DESC limit toInt({k_neighbors})
+
+MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
+RETURN from , to, s, u1_avg + sum(similarity * (r.rating-u2_avg))/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
+ORDER BY prediction DESC LIMIT toInt({top_n})
+----
+
+== Get Top-N Prediction for User with Pearson-Similarity + Z-Score-Normalization + kNN
+:k_neighbors: pass:a['<span value-key="k_neighbors">5</span>']
+:top_n: pass:a['<span value-key="top_n">5</span>']
+:user: pass:a['<span value-key="user">Björn</span>']
+
+
+++++
+Find Top-<input style="display:inline;width:30%;" value-for="top_n" class="form-control" value="5" size="40"> Predictions for <input
+style="display:inline;width:30%;" value-for="user" class="form-control" value="Björn" size="40"> in the <input style="display:inline;width:30%;"
+value-for="k_neighbors" class="form-control" value="5" size="40">-NN
+++++
+
+[source, cypher,subs=attributes]
+----
+MATCH (p1:User {public_nickname: {user}})-[l:LIKES]->(statement)
+WITH p1, algo.similarity.asVector(statement, l.rating) AS p1Vector, avg(l.rating) as u1_avg, stDev(l.rating) as u1_std
+
+MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
+WITH p1, p2, u1_avg, u1_std, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector, avg(l.rating) as u2_avg, stDev(l.rating) as u2_std
+WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity, u1_avg, u1_std, u2_avg, u2_std
+ORDER BY similarity DESC limit toInt({k_neighbors})
+
+MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
+RETURN from , to, s, u1_avg + u1_std* sum(similarity*(r.rating-u2_avg)/u2_std)/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
 ORDER BY prediction DESC LIMIT toInt({top_n})
 ----
\ No newline at end of file
diff --git a/api/html/browser_guide.html b/api/html/browser_guide.html
index f608d78526672ab846e8a37575feed9609cf5cff..e4cf3a54b258a91cae35eeaa8f16764c9f2b1593 100644
--- a/api/html/browser_guide.html
+++ b/api/html/browser_guide.html
@@ -376,10 +376,67 @@ MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
 WITH p1, p2, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector
 WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity
 ORDER BY similarity DESC limit toInt('<span value-key="k_neighbors">5</span>')
-WHERE similarity <> 0.0
 
 MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
-return from , to, s, sum(similarity * r.rating)/sum(abs(similarity)) as prediction
+RETURN from , to, s, sum(similarity * r.rating)/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
+ORDER BY prediction DESC LIMIT toInt('<span value-key="top_n">5</span>')<!--/code--></pre>
+</div>
+</div>
+	</div>
+  </div>
+</slide>
+
+
+
+<slide class="row-fluid">
+  <div class="col-sm-12">
+    <h3>Get Top-N Prediction for User with Pearson-Similarity + Mean-Centering + kNN</h3>
+    <br/>
+    <div>
+      Find Top-<input style="display:inline;width:30%;" value-for="top_n" class="form-control" value="5" size="40"> Predictions for <input
+style="display:inline;width:30%;" value-for="user" class="form-control" value="Björn" size="40"> in the <input style="display:inline;width:30%;"
+value-for="k_neighbors" class="form-control" value="5" size="40">-NN
+<div class="listingblock">
+<div class="content">
+<pre mode="cypher"  class="highlight pre-scrollable programlisting cm-s-neo code runnable standalone-example ng-binding" data-lang="cypher" lang="cypher"><!--code class="cypher language-cypher"-->MATCH (p1:User {public_nickname: '<span value-key="user">Björn</span>'})-[l:LIKES]->(statement)
+WITH p1, algo.similarity.asVector(statement, l.rating) AS p1Vector, avg(l.rating) as u1_avg
+
+MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
+WITH p1, p2, u1_avg, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector, avg(l.rating) as u2_avg
+WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity, u1_avg, u2_avg
+ORDER BY similarity DESC limit toInt('<span value-key="k_neighbors">5</span>')
+
+MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
+RETURN from , to, s, u1_avg + sum(similarity * (r.rating-u2_avg))/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
+ORDER BY prediction DESC LIMIT toInt('<span value-key="top_n">5</span>')<!--/code--></pre>
+</div>
+</div>
+	</div>
+  </div>
+</slide>
+
+
+
+<slide class="row-fluid">
+  <div class="col-sm-12">
+    <h3>Get Top-N Prediction for User with Pearson-Similarity + Z-Score-Normalization + kNN</h3>
+    <br/>
+    <div>
+      Find Top-<input style="display:inline;width:30%;" value-for="top_n" class="form-control" value="5" size="40"> Predictions for <input
+style="display:inline;width:30%;" value-for="user" class="form-control" value="Björn" size="40"> in the <input style="display:inline;width:30%;"
+value-for="k_neighbors" class="form-control" value="5" size="40">-NN
+<div class="listingblock">
+<div class="content">
+<pre mode="cypher"  class="highlight pre-scrollable programlisting cm-s-neo code runnable standalone-example ng-binding" data-lang="cypher" lang="cypher"><!--code class="cypher language-cypher"-->MATCH (p1:User {public_nickname: '<span value-key="user">Björn</span>'})-[l:LIKES]->(statement)
+WITH p1, algo.similarity.asVector(statement, l.rating) AS p1Vector, avg(l.rating) as u1_avg, stDev(l.rating) as u1_std
+
+MATCH (p2:User)-[l:LIKES]->(statement) WHERE p2 <> p1
+WITH p1, p2, u1_avg, u1_std, p1Vector, algo.similarity.asVector(statement, l.rating) AS p2Vector, avg(l.rating) as u2_avg, stDev(l.rating) as u2_std
+WITH p1 AS from, p2 AS to, algo.similarity.pearson(p1Vector, p2Vector, {vectorType: "maps"}) AS similarity, u1_avg, u1_std, u2_avg, u2_std
+ORDER BY similarity DESC limit toInt('<span value-key="k_neighbors">5</span>')
+
+MATCH (to)-[r:LIKES]->(s:Statement) WHERE NOT EXISTS((from)-[:LIKES]->(s))
+RETURN from , to, s, u1_avg + u1_std* sum(similarity*(r.rating-u2_avg)/u2_std)/FILTER(x in [sum(abs(similarity)), 1] WHERE NOT x=0)[0] AS prediction
 ORDER BY prediction DESC LIMIT toInt('<span value-key="top_n">5</span>')<!--/code--></pre>
 </div>
 </div>