Skip to content

Investigate using DataFusion #780

Description

@Tpt

Arrow DataFusion is a modular query engine toolkit focused on OLAP use cases.

Oxigraph query evaluation system is currently very primitive, it might be interesting to evaluate if DataFusion can be used as a base for a new query evaluation system, making use of all the work done in DataFusion around optimization and vectorized evaluation.

Some challenges:

  • figure out a good RDF encoding on top of Arrow (the internal representation used by DataFusion)
  • check how many DataFusion query plan operators can be reused for SPARQL
  • figure out the data update story around DataFusion: how can we support data deletion and transactions while using DataFusion?

Activity

  1. Tpt commented on Nov 23, 2024

    @Tpt
    CollaboratorAuthor

    Note that it is also possible to rewrite SHACL to SPARQL and SQL: Compiling SHACL into SQL
    Maxime Jakubowski et al

  2. tschwarzinger commented on Sep 29, 2025

    @tschwarzinger

    Hi @Tpt ! Firstly, thanks for Oxigraph!

    I just stumbled across this issue. Maybe https://github.com/tobixdev/rdf-fusion can give you some insights. We basically implemented SPARQL on-top of DataFusion.

    RDF Fusion started as a fork from Oxigraph and we use a very similar Store API (just with async). So I guess here is already an alignment.

    We also support custom storage backends. While we have a backend for in-memory stores, we currently have nothing that persists the data. I can imagine that we could implement a storage backend for Rocks DB that is compatible with existing Oxigraph DBs.

    Maybe we could have a discussion with joining our efforts?

  3. Tpt commented on Sep 29, 2025

    @Tpt
    CollaboratorAuthor

    Hi @tobixdev! Thank you so much for reaching out. I was not aware of your project. I just started investigating DataFusion, building some for stuff in e9279de

    I would love to collaborate. I will send you an email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions