Pitch: Nossence
Introduction
nossence = no(s) + (e)ssence
Nossence is a recommender engine that promotes valuable content to their best audiences. Whether a seasoned user of nostr or a new user just getting started, nossence can help them discover and explore interesting and relevant content.
Design Concept
The core of nossence is the recommender engine, which is consist of a hybrid storage (graph database and plain text) and a series of recommendation algorithms.
The recommender engine provides 3 core capabilities (in design, not fully implemented yet):
-
crawl relay servers and store their events in a data structure optimized for query.
-
a filtering expression that users can specify the pattern of events they need.
-
query result can be fetched in both batch or streaming way.
Currently we choose 'bot' as the interface, but there could be more interfaces. It is designed to be an infrastructure that can be easily integrated into many clients.
Features
General recommendation: For users who don't want personalized recommendation, or a new user who has no data on nostr, nossence will recommend 'Top Trending' or 'Most Viewed' posts.
Personalized Recommendation: For users who have some 'activities' on nostr, nossence will recommend posts based on their preference and users similar to them.
You can try it out here! Please follow the instruction in account description.
Under the Hood
Nossence uses a graph database to store events from Relay and employs statistical algorithms to score the popularity of posts. Personalized recommendations is based on collaborative filtering that takes advantage of user's activities such as like, reply, follow, etc.
For more details, please refer to the GitHub!
What's Next
-
Introduce more data science stuffs to improve recommendation precision and recall.
-
Provide a DSL that user can specify what they are interested.
-
Provide more interfaces (API and Relay)