> Since I want triple processing...is extending the StreamRDFBase and > overriding the method `public void triple(Triple triple)` an option? Is it > the best option?
That's a reasonable option, or try StreamRDFWrapper [1] and override where appropriate. Keep in mind that triple-level processing can occur well after parsing, if that's what makes sense for your application; although you won't have the advantages of streaming, you will have random-access to the rest of your data. ajs6f [1] https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/riot/system/StreamRDFWrapper.html > On Aug 3, 2018, at 7:33 AM, [email protected] wrote: > > > > On 2018/08/03 10:10:34, Andy Seaborne <[email protected]> wrote: >> >> >> On 02/08/18 22:17, [email protected] wrote: >>> I'm converting a JSON-LD input to RDF using Jena: >>> >>> Model m = ModelFactory.createDefaultModel; >>> String str_reader = new StringReader(json.noSpaces) >>> RDFDataMgr.read(m, str_reader, "", RDFFormat.JSONLD.getLang) >> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >> Lang.JSONLD >> >>> I want to be able to have a custom serializer for String Literals. My end >>> goal is to convert a plain String literal to a xsd:date or xsd:dateTime >>> Literal whenever a desired format is found. >> >> Look at StreamRDF and RDFDataMgr.parse >> (or build your parser for more control with RDFParser.create()) >> >> All parsers send their output to a output to a StreamRDF. >> >> RDFDataMgr.read uses a StreamRDF that puts triples/quads into a graph. >> >> >> StreamRDFs combine so you can build a pipeline >> >> Parser -> convert strings -> store in graph. >> >> Streams as well so works for large data if the syntax streams (JSON-LD >> does not). >> >>> I know this is handled by jsonld-java which in turn relies on jackson. Is >>> there anyone who can give me a hint on how to add this type of custom >>> serialization? >> >> Jackson is the JSON parser. >> >> jsonld-java is the JSON-LD algorithms. >> >> What you seem to want is triple processing and be syntax agnostic. >> >> Andy >> > Thanks for your reply. That's informative. I see that I can use > RDFParser.create() to customize the StreamRDF (using > RDFParser.create().parse(stream)). > > Since I want triple processing...is extending the StreamRDFBase and > overriding the method `public void triple(Triple triple)` an option? Is it > the best option?
