Expand description
This crate implements the SPARQL scalar and aggregate functions for RDF Fusion.
While all SPARQL functions are implemented as DataFusion user-defined functions (UDFs), we also provide additional support to simplify SPARQL function implementation.
§Scalar Functions
To implement a scalar function, implement the ScalarSparqlOp
trait.
Then, use the ScalarSparqlOpAdapter
to make the SPARQL operation
compatible with DataFusion’s UDF system.
§Aggregate Functions
Aggregate functions currently have limited support. They only support typed value encoding and do not yet provide a SPARQL-specific trait to simplify development. We plan to provide enhanced support for aggregate functions in the future.
§Dispatch
Dispatch functions are a toolkit designed to help implement “iterative” versions of SPARQL functions that operate on standard Rust types. However, this functionality may be removed in the future for the following reasons:
- It often reduces performance compared to directly working on the arrays.
- In its current form, it is incompatible with some planned future improvements.