Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

These are the base elements:

  * Nodes/Vertices: Person, Topic, Entry
  * Relationships/Edges: Tagged, Authored

  person -- authored --> entry
  entry -- tagged --> topic
Here's the base model: https://github.com/espeed/lightbulb/blob/master/lightbulb/mo...

The comment system is a separate, generic component.

Marko, the guy who created Gremlin (https://github.com/tinkerpop/gremlin/wiki), just released a Gremlin Tree step (https://github.com/tinkerpop/gremlin/wiki/Tree-Pattern), which makes it really easy to build a threaded comment tree in one quick shot.

If you have a large blog or content system, you can use likes and views to make content recommendations using a basic Gremlin collaborative filtering query:

  // calculate basic collaborative filtering for vertex with user_id
  def rank_items(user_id) {
      m = [:]
      g.v(user_id).out('likes').in('likes').out('likes').groupCount(m)
      m.sort{a,b -> a.value <=> b.value}
      return m.values()
  }
If you use Facebook, Twitter, or GitHub to authenticate users you can easily incorporate friends and followers into the recommendations.


Thanks for taking the time to explain, I'll definitely be doing some reading over the code.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: