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

Remove RDF support #4289

Open
ray6080 opened this issue Sep 23, 2024 · 4 comments · May be fixed by #4344
Open

Remove RDF support #4289

ray6080 opened this issue Sep 23, 2024 · 4 comments · May be fixed by #4344
Assignees
Labels
rdf Issues related to RDF support refactoring

Comments

@ray6080
Copy link
Contributor

ray6080 commented Sep 23, 2024

Description

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

  • Drop the syntax support related to RDF from the grammar file and parser.
  • Drop the binding logic related to RDF.
  • Remove RDFGraphCatalogEntry and also related code for managing it from Catalog and transaction modules.
  • Remove the logical data type RDF_VARIANT and related code.
  • Remove the special logic of handling rdf tables in StorageManager.
  • Clean up rdf data types from APIs.
  • Remove RDF related tests and datasets.

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.

@ray6080 ray6080 added refactoring rdf Issues related to RDF support labels Sep 23, 2024
@datadavev
Copy link

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
Copy link
Contributor

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
Copy link
Contributor

FYI: I also opened this, so that people for whom this is an important feature can weigh in with their opinions here: #4308

@datadavev
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rdf Issues related to RDF support refactoring
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants