3 ms·
These are the base elements: * Nodes/Vertices: Person, Topic, Entry * Relationships/Edges: Tagged, Authored person -- authored --> entry entry -- tagg
by espeed 15y ago
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/model.py 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 https://github.com/tinkerpop/gremlin/wiki), just released a Gremlin Tree step (https://github.com/tinkerpop/gremlin/wiki/Tree-Pattern 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.
- kisielk 15y agoThanks for taking the time to explain, I'll definitely be doing some reading over the code.