Skip to content

Add Jelly-RDF 1.2 protos & tests, update Jelly-SPARQL column layouts - #117

Merged
Ostrzyciel merged 12 commits into
mainfrom
piotr/sparql-single-column-exp
Oct 19, 2026
Merged

Ostrzyciel merged 12 commits into
mainfrom
piotr/sparql-single-column-exp

Conversation

@Ostrzyciel

@Ostrzyciel Ostrzyciel commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Review together with: Jelly-RDF/jelly-rdf.github.io#115

  • Added Jelly-RDF 1.2 protos. This is a new columnar layout, based on Jelly-SPARQL.
  • Added Jelly-RDF 1.2 tests.
  • Moved the Jelly-RDF 1.1 tests to a separate directory.
  • Moved the relevant Jelly-SPARQL messages to rdf.proto and tidied things up. Also fixed any broken links to the spec because we refactored Jelly-SPARQL spec to not repeat stuff from Jelly-RDF.
  • There is one major change in the protos: all columns are now polymorphic, but the monomorphic case can still be encoded efficiently. In practice this makes the files slightly smaller (due to not having to repeat headers and less wrapping in some cases), and the Jelly-JVM encoder is like 4–7% faster. Decoder is basically the same speed as before.
  • Jelly-RDF 1.2 keeps the rows as-is and adds a new column batch container, which works a lot like Jelly-SPARQL. Rows are still used to communicate the stream options, so that legacy consumers can correctly detect the Jelly-RDF version.

This implements #102, #41, and #59

The breaking changes reported by the buf linter are fine, they are all in the draft SPARQL format.

sparql.proto as in the work-in-progress spec, with RdfColumn copied in as
SparqlColumn (same wire format) and rdf2.proto still imported, so that
Jelly-RDF keeps compiling until the new rdf.proto lands.
@github-actions

This comment was marked as outdated.

@Ostrzyciel
Ostrzyciel requested a review from adanilenka October 8, 2026 22:33
Ostrzyciel added a commit to Jelly-RDF/jelly-jvm that referenced this pull request Oct 9, 2026
Does not implement Jelly-RDF 1.2 yet, just bumps the proto to the same one as in Jelly-RDF/jelly-protobuf#117

There are many small changes in Jelly-SPARQL due to the new proto having only one column kind. In general the behavior is mostly the same, just the binary layout is slightly different. We will be able to later take out large chunks of the column-handling code to Jelly-RDF.
apparently RDF4J does this and it is allowed
…olumn-exp

# Conflicts:
#	proto/rdf.proto
#	proto/rdf2.proto
#	proto/sparql.proto
@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Protobuf checks / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed❌ failed (10)Oct 19, 2026, 12:22 PM

@Ostrzyciel

Copy link
Copy Markdown
Member Author

(the breaking changes are fine, they are all in the draft SPARQL format)

@Ostrzyciel Ostrzyciel changed the title Add Jelly-RDF 1.2 protos, update Jelly-SPARQL column layouts Add Jelly-RDF 1.2 protos & tests, update Jelly-SPARQL column layouts Oct 17, 2026
@Ostrzyciel
Ostrzyciel requested review from nk2IsHere and removed request for adanilenka October 17, 2026 13:11
Comment thread test/generator_common/__pycache__/__init__.cpython-314.pyc Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto Outdated
Comment thread proto/rdf.proto
Comment thread test/generator_common/coldec.py Outdated
Comment thread test/rdf/v1_2/generator/decoder.py Outdated
Ostrzyciel added a commit to Jelly-RDF/jelly-rdf.github.io that referenced this pull request Oct 19, 2026
Review together with:
Jelly-RDF/jelly-protobuf#117

- Added the RDF 1.2 spec
- To keep the spec simple, it only describes how to work with Jelly-RDF
1.2, not 1.1 or 1.0. In case the stream uses an older version of Jelly,
the consumer is instructed to follow the Jelly-RDF 1.1 spec instead.
- Refactored the SPARQL spec, moving anything shared (e.g., how columns
work) to the RDF spec
@Ostrzyciel
Ostrzyciel merged commit d32bd9f into main Oct 19, 2026
1 of 2 checks passed
@Ostrzyciel
Ostrzyciel deleted the piotr/sparql-single-column-exp branch October 19, 2026 12:26
Ostrzyciel added a commit to Jelly-RDF/jelly-rdf.github.io that referenced this pull request Oct 19, 2026
Following the discussion in:
Jelly-RDF/jelly-protobuf#117

Side note: 1.1-only consumer will simply ignore these fields, so it's
best to say we ignore this. Adding a SHOULD here would require adding
extra test cases.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants