Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Kùzu, an embedded graph database #54

Open
prrao87 opened this issue Mar 20, 2024 · 2 comments
Open

Support for Kùzu, an embedded graph database #54

prrao87 opened this issue Mar 20, 2024 · 2 comments
Labels
good first issue Good for newcomers

Comments

@prrao87
Copy link

prrao87 commented Mar 20, 2024

Hi there, this is a great project. I really like the fact that it supports duckdb right off the bat for a number of operations.

My goal is to eventually get this working with Kùzu, an embedded graph DB that's very similar to DuckDB in its internals, as well as LanceDB for the vector store, which is also an embedded vector DB. In fact, Kùzu has modeled itself along the lines of DuckDB, and uses a lot of similar ideas in terms of how it integrates with other systems, and its query processor (which supports efficient OLAP operations on large graphs). Embedded databases, in general, seem to be a very good fit for the scenarios that cognee is built for, and I'd love to contribute some functionality to this project on all these fronts.

As an initial idea, I was looking through the render_graph method and it's immediately obvious to me how Kùzu is useful here: it's lightweight, requires no servers, and it implements the Cypher query language, so it's really easy to get data in and out (via Cypher, which is declarative just like SQL). In addition, it's really easy to output a Kùzu database to either NetworkX or Pandas DataFrames, both of which are used as intermediate data structures here (for example, to graphistry and for interop between relational and graph formats).

I see that Neo4j is chosen as the default graph database backend for this project, presumably due to the ease of representing the query logic in Cypher. Considering that DuckDB/SQLite are used as the default backends for the relational data, I was wondering how it might be possible to provide Kùzu as an alternative graph backend.

Thanks for putting this up, and looking forward to getting more involved!

@Vasilije1990
Copy link
Contributor

Hey, great suggestions.
We have lancedb on our roadmap, and if kuzu supports cypher, we will add it as we extend neo4j in the next iteration.
Will keep you posted on this one

@prrao87
Copy link
Author

prrao87 commented Mar 20, 2024

Great. Kùzu does indeed support Cypher (it's the only query language supported), and it also offers an RDF graph layer that's itself queryable in Cypher-like syntax. I'd be happy to help/test/document things and get the word out as this project evolves. Looking forward to it!

@Vasilije1990 Vasilije1990 added the good first issue Good for newcomers label Apr 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants