StreamRDF RIOT and generalized RDF #3079
Replies: 1 comment 1 reply
-
To provide context/options, I would suggest a layer on top of StreamRDF that focuses on being a processing framework.
Jena is not offering a generalized RDF processing platform. The assumptions of proper RDF runs deep. ("generalized" is particularly hard because the predicate position is general - e.g. triple terms).
The parsers are RDF, not generalized RDF. Uses expect errors on "bad RDF". There is no reason why new languages can't be added but redefining standard languages would be bad. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I've been on a witch hunt for generalized RDF-related code recently. Generalized statements typically are used only within one application (e.g., as a result of RDFS reasoning), and are rarely exchanged in serialized form. When the reasoner output is piped to an RDF writer, we get issues like the one recently discussed on the user list: https://lists.apache.org/thread/vgw50ztx8vtz4g57ybcrykpndplmngcg
I was wondering what RDF readers/writers actually support generalized RDF. I did a quick experiment and it turns out that (detailed results in collapsed section below):
Results
For me the weirdest part here is the N-Triples RIOT that can't read what it just wrote 😆
My angle is that I'm developing a format (Jelly) that has a file header telling the reader whether generalized RDF may lie inside the file. It would be nice to set this property to "false" in situations where generalized RDF can't be produced. Maybe even separate somehow the RIOTs that can do generalized RDF and those that can't.
From what I understand, it's impossible to put generalized RDF in
Model
andDataset
, but it can be present inGraph
andDatasetGraph
. So, if we are serializing a Model/Dataset, we can safely assume that no generalized RDF will be there.For
StreamRDF
I know that there is a filter of generalized RDF that can be applied, but it's impossible to tell for a downstream consumer if this filter was applied. So, we don't know if there will be generalized RDF in the stream or not.StreamRDF
instances generated from the new Titanium RDF API will also never contain generalized RDF, because Titanium doesn't support that: #3061Questions from my side, up for discussion:
StreamRDF
producers to inform the consumers that there may/may not be generalized RDF in the stream?...feel free to add anything else that comes to your mind, I'm just doing a "thought dump" here.
Beta Was this translation helpful? Give feedback.
All reactions