Wednesday, September 28, 2011

Paypal Dev Blog: MLM Engine using Neo4j

In this article from the PayPal Developer Zone, John Wheeler explains how to create an MLM Engine using Neo4j. He explains different MLM models, introduces basic graph concepts, then demonstrates how to map an MLM onto a graph to power the compensation engine.

A Multi-level Marketing (MLM) Engine allows compensation to be easily calculated despite the complex hierarchy of a sales network.


In John Weeler's firs
t part of Build[ing] an MLM Engine with Neo4j and MassPay, he covers multi-level marketing and how the structure best fits within a graph.


He dives into building an MLM engine, then explains traversing the graph within the engine.


He concludes by giving us a sneak peaks as to what to e
xpect from the second part of the blog series:

"In the next part of this article, we [will] pay downline commissions with MassPay using the builder pattern to make it easier."

Read the full article here. We love posts like these that show how graphs solve our complex and connected challenges.

Monday, September 26, 2011

Marko Blogs: How to Create a Movie Recommender Engine






Marko Rodriguez gives us a step by step guide to building a graph-based movie recommender engine using the publicly available MovieLens dataset, the graph database Neo4j, and the graph traversal language Gremlin.

He uses the animated movie Toy Story to demonstrate traversing the MovieLens Graph, and dives into these questions:

  • Which users gave Toy Story more than 3 stars?
  • Which users gave Toy Story more than 3 stars and what other movies did they give more than 3 stars to?
  • How many of Toy Story’s highly co-rated movies are unique?
  • Which movies are most highly co-rated with Toy Story?
  • Which movies are most highly co-rated with Toy Story that share a genera with Toy Story?
  • Which movies are most highly co-rated with Toy Story that share all genres with Toy Story?
Check out his blog post here, keep it up Marko!

Saturday, September 17, 2011

René Pickhardt Blogs: Neo4j, GWT and Apache Tomcat Webserver

This PhD student blogger is developing a social news stream app using Neo4j built on GWT.

The most interesting part about his post is when he compares the speed of Neo4j to a MySQL database, with Neo4j:

[Neo4j and GWT]
Together with sending the result via GWT over the web this was done in about 0.9 seconds!

[MySQL]
Multiply this number with 56 and you get 9.5 seconds! And we haven’t even included sending of data and parsing in html yet.

He finishes his post by saying:

I am really excited. Very seldom I was so keen on going on programming something to see further results!

To follow René Pickhardt's project and blog, go here.

Friday, September 16, 2011

Digifesto Blog: Neo4j and Scala

Upon attending FOSS4g 2011, Blog Digifesto author "started hacking around graph database Neo4j in Scala because [he's] convinced both are the future."

He documents his challenges and process throughout this first pass. He uses sbt for the first time, and in needing a main method, tries Scala's application trait.

"Overall, hacking around with this makes me excited about both Scala and Neo4j..."


Digifesto blogger provides a fully comprehensive log and coding in his blog post here. We look forward to seeing future endeavors on Neo4j in this blog!

Thursday, September 15, 2011

Nigel Small Blogs: Pagination with Neo4j

Last time Nigel discussed Neo4j, he introduced Py2neo, a binding between Python and Neo4j.

This time, he's back to talk about pagination with Neo and Cypher.

"Fundamentally, the method described here exploits the order by, skip and limit features of Cypher in order to return only a segment of the total results from the overall result set."

He then presents a demo using numbers, with each node containing the numerical value and English name ( “number”: 12, “name”: “twelve” )


Check out his blog post on pagination, and keep up the great work Nigel!

Thursday, September 8, 2011

Adriano Blogs: How Neo4j uses Scala’s Parser Combinator



In Adriano's first segment of his Cypher & Neo4j blog series, Adriano introduces the subject by reminiscing on his childhood memories of disassembling toys to see how they worked.

He then introduces Neo4j and Cypher, discusses parsing and parser combinators, and concludes with:

"There’s a lot more things to see, such as how other clauses of Cypher are tied together, how error reporting is done, how the query is executed after the parse process happens and so on."

Looking forward to Part 2 of Adriano's Neo4j and Cypher blog series. Check it out here.


Adriano de Almeida is presenting at QCon 2011 in São Paulo, September 10.