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

rdf-canon (RDF Dataset Canonicalization) support #5255

Open
vorburger opened this issue Feb 22, 2025 · 3 comments
Open

rdf-canon (RDF Dataset Canonicalization) support #5255

vorburger opened this issue Feb 22, 2025 · 3 comments
Labels
📶 enhancement issue is a new feature or improvement

Comments

@vorburger
Copy link
Contributor

vorburger commented Feb 22, 2025

Problem description

https://github.com/w3c/rdf-canon support in RDF4j might be interesting.

Could also be built as a separate library outside of this project, of course.

I've stumbled upon and might be interested in using this in the context of enola-dev/enola#1103.

Just thought I would post this here, in case anyone ever has any input.

Preferred solution

Part of and maintained in RDF4j itself.

Are you interested in contributing a solution yourself?

Probably not (or at least not in the foreseeable future, maybe one day).

Alternatives you've considered

  1. https://project.inria.fr/corese/ - probably much too huge?
  2. https://github.com/setl/rdf-urdna - looks better and somewhat more self contained already
  3. https://github.com/filip26/titanium-rdfc - not listed on rdf-canon/reports (yet?), but maybe the way to go in the mean time?

Anything else?

If this were to be built by someone, it might be interesting to have it included on https://w3c.github.io/rdf-canon/reports/.

@filip26
Copy link

filip26 commented Feb 22, 2025

@vorburger Thank you for mentioning Titanium RDFC. The library was originally a fork of RDF-URDNA but diverged to align with W3C RFC-CANON, to quickly adapt to requirements such as exposing the blank node label map, and incorporating the latest Titanium JSON-LD updates. Over time, it has evolved into a standalone library.

The latest version, 2.0, which I’m currently working on, introduces RdfConsumer, a new interface designed to minimize the need for transport object creation (which is expensive in Java) and enable stream-like processing.

The next version, should depend on an artifact like titanium-rdf-api (or something similar), which will be extracted from titanium-json-ld, making it possible to depend only on this library instead of the entire titanium-json-ld.

The test suite and much of the codebase still originate from the RDF-URDNA fork. Given that there are already Java libraries for this in the report, I hesitate to add another one -perhaps when version 2.0 is released.

FYI: Planned improvements - feedback is very welcome!
See JSON-LD to RDF example
RDFConsumer interface proposal

@filip26
Copy link

filip26 commented Feb 22, 2025

Sorry, this should have been posted on rdf-cannon.

@barthanssens
Copy link
Contributor

Could also be interesting for signing RDF graphs ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📶 enhancement issue is a new feature or improvement
Projects
None yet
Development

No branches or pull requests

3 participants