Only Neo4j database for application or neo4j and sql?

Hello :slight_smile:

I'm delevoping an application where people with cognitive disabilities can look at pictures, watch videos,... and can interact with them. User have profiles with certain info(e.g. name, interests) and there are sessions, where a user can look at those media files. With neo4j i want to implement a simple recommender system to recommend certain media files based on their interests in certain topics and the shown interest during a session.
I never use Neo4j before and so i'm a little bit unsure whether to only use neo4j to store all the data (patients, sessions, items, interests,...) or if there are some disadvantages?

I'd be really glad if someone could help me with that :slight_smile:

Neo4j is designed to handle information where relationships and their data give meaning to a context.
Recommendation systems are one of them.

In neo4j it is not convenient to store long texts and you cannot insert files (blobs).

The way you create nodes and relationships is fundamental to the questions you are supposed to ask.



Thank you for your fast reply!

I don't intend to save files in the database, but just the path to the files, so that shoudn't be a problem.
The important nodes for my recommender systems are person, item( info about media file) and tag (e.g. cat, holiday,...). A person rates an item and a person has interest in a tag. And a tag descripes the tag.

beside that, i need to store more info about the person, sessions, tags and items. so items can have multiple tags but there will also be an classification label for images (e.g. cat, dog, house). I want to store how long a session lasted, what pictures the person was most interested in...

Thats why i'm thinking about whether to store all data in neo4j or have a neo4j database for the recommender system and a sql database for the other data


From my point of view the big problem is to choose whether the tags are nodes (like the category in Amazon) or are property of an article.



I'm working on something public and open-source, that is very similar. It's not quite ready for prime time, but:

I think neo4j not only is good for entity relation type problems, but also great with respect to is schemaless characteristic. Actualy you do not need a predefined schema. Even more important, you can add properties to existing nodes or relations at your guise. If you stick to non strongly typed languages such as javascript this becomes a real strong combination. In addition, an important number of very advanced graph analytical algorithms can help you avoid home grown complex algorithms.

As an alternative architecture you might envisage an RDF based aproach. With neo4j you have a rock solid, fast database.


1 Like