good afternoon;

> On 10. Jul 2024, at 07:36, Holger Knublauch <[email protected]> wrote:
> 
> I am working on serializing partial RDF graphs to JSON-LD using the 
> Jena-Titanium bridge.
> 
> Problem: For Titanium to "see" the triples it needs to have a complete copy. 
> See JenaTitanion.convert which copies all Jena triples into a corresponding 
> RdfDatset. This cannot scale if the graph is backed by a database, and we 
> only want to export certain triples (esp for Framing). Titanium's RdfGraph 
> does not provide an incremental function similar to Graph.find() but only 
> returns a complete Java List of all triples.
> 
> Has anyone here run into the same problem and what would be a solution?

yes, we have.
as we see cardinalities in the results from queries which qualify their 
response media type with ld+json which are quite large, i have considered ways 
to emit the results incrementally.
problematic is that, depending on the "embed" and "ordered" settings, it can be 
necessary to materialize the results, before emitting any data.
if all references are just identifiers, incremental generation is possible.
if the query already orders the results - which may be possible without sorting 
depending on the available indices, this is possible even if a resource can 
appear just once.
if the results are not ordered, but the result is to be, then (as i recall the 
framing recommendation), the document members must be sorted, which requires to 
materialize all results.

> 
> I guess one solution would be an incremental algorithm that "walks" a 
> @context and JSON-LD frame document to collect all required Jena triples, 
> producing a sub-graph that can then be sent to Titanium.

in which process - depending on the embedding constraints, the results may have 
to have been materialized in order to ensure that the entire subgraph has been 
seen.

> But the complexity of such an algorithm is similar to having to implement my 
> own JSON-LD engine, which feels like an overkill.
> 
> Holger
> 

---
james anderson | [email protected] | https://dydra.com


Reply via email to