On Tue, Oct 26, 2021 at 11:52 AM Andy Seaborne <a...@apache.org> wrote: > > > On 26/10/2021 09:40, Martynas Jusevičius wrote: > > Hi, > > > > I'm implementing a Reader that extracts <script > > type="application/ld+json"> from HTML and then uses JsonLDReader to > > parse that data. > > > > I've got a few questions in the process: > > > > 1. How does one obtain the default ParserProfile and ErrorHandler? > > Currently I'm using > > > > ParserProfile profile = > > RiotLib.profile(HtmlJsonLDReaderFactory.HTML, null, > > ErrorHandlerFactory.getDefaultErrorHandler()); > > Use > > RDFParser.create()... parse(stream); > > then don't call .factory() .errorHandler() on the RDFParserBuilder and > the defaults will be used.
I'm doing some hacking because currently I'm stuck with 3.16.0 which does not support JsonLDReader.JSONLD_OPTIONS. So I can't propery initialize RDFParser for JSON-LD. For now I've copied the JsonLDReader class from 3.17.0 which has JSONLD_OPTIONS. > > but internally the method it calls are all deprecated. > > > > 2. Can multiple StreamRDF be combined into one? > > A single StreamRDF can be reused unless it documents otherwise. A graph > sink can be used multiple times. > > > There might be > > multiple <script> elements and the reader should merge the data from > > them. I attempted > > > > public void read(Reader in, String baseURI, Lang lang, StreamRDF > > output, Context context) > > { > > ... > > for (Element element : jsonLdElements) > > { > > String jsonLd = element.data(); > > getJsonLDReader().read(new StringReader(jsonLd), baseURI, > > JSONLD.getContentType(), output, context); > > } > > } > > > > but only the first element gets read, > > > I guess because > > getJsonLDReader().read() calls output.start()/output.finish(). > > Unlikely - .start/.finish can be called multiple times (unless the > StreamRDF explicitly documents otherwise - a graph sink can be used > multiple times. Right. It seems to work, I think I looked at the wrong examples when I wrote this -- sorry about that. The code can be found here: https://github.com/AtomGraph/LinkedDataHub/blob/develop/src/main/java/com/atomgraph/linkeddatahub/io/HtmlJsonLDReader.java