kuzudb / kuzu

Embeddable property graph database management system built for query speed and scalability. Implements Cypher.
https://kuzudb.com/
MIT License
1.41k stars 99 forks source link

Remove RDF support #4289

Closed ray6080 closed 2 weeks ago

ray6080 commented 1 month ago

Description

We've decided to drop the support of RDF. Several changes need to done in the codebase:

There can be more items to be listed here later. We can get this done with a series of PRs, but I think it's better to get all fully done in a gigantic PR, which is easier to trace in the future if needed in any cases.

datadavev commented 1 month ago

I may have missed it, but is there documentation describing the reasons for dropping RDF support in Kuzudb?

My use case involves import / export of fairly simple though moderately large RDF graphs which seems easy enough with a purpose built external translator. It would be great to review any notes on the decision for dropping RDF in Kuzudb so I am at least aware of potential gotchas.

semihsalihoglu-uw commented 1 month ago

Hi @datadavev: There were several reasons behind this. First, we saw little usage for this native support for RDF. We also saw a few people who were importing RDF data to Kuzu but not through RDFGraphs, but instead they were using their own mappings from RDF To property graph. Second, we realized we were very aggressive in making this a core-feature of Kuzu, instead of an extension. Implementing this at the core means we have to support several RDF-specific features internally, e.g., the VARIANT data type, or virtual properties (the iri property on the predicates are actually virtual and internally we store integers) and maintaining all these features at the core has been slowing our development.

So ultimately, the decision that we made was to remove this feature for now and:

  1. Accumulate more evidence that this is a feature for which there is visible interest from the community; and
  2. Bring this feature back at some future point but as an extension. This way, it will be a seperate tool built on top of Kuzu (and not inside Kuzu) that brings some native support for ingesting and querying RDF data.

So that's the roadmap for now. Sorry that this might be frustrating if you were using this already; we are forced to take some longer term decisions for the software. The feature will keep working at 0.6.0. Other than that, the feature is fine for the basic usage of importing RDF data natively and querying in Cypher.

Hope this clarifies the discussions that happened before we took this decision.

semihsalihoglu-uw commented 1 month ago

FYI: I also opened this, so that people for whom this is an important feature can weigh in with their opinions here: https://github.com/kuzudb/kuzu/discussions/4308

datadavev commented 1 month ago

Thanks for the clarification. Providing RDF support through an extension makes a lot of sense and this change will not significantly impact my development, which is primarily focussed on import / export of RDF but querying with Cypher.