OK. But how do you handle invalid URI input without turning the checking off? And without reading and then writing the Model? Where the user provides URIs manually, e.g. as a form input for SPARQL endpoint URI.
On Tue, 26 Jul 2016 at 20:27, Andy Seaborne <a...@apache.org> wrote: > On 26/07/16 16:14, Martynas Jusevičius wrote: > > But the assumption obviously doesn't hold? Illegal Models exist > > because they can be parsed. > > No - because someone turned the checking off or created them them with > code, not a parser. > > > Wouldn't it make sense for the Writers check URIs just like the > > Readers do? URI validity does not depend on syntax, does it? > > Checking URIs is expensive. Sometimes it matters (NTriples, NQuads). > > To check them, process the model first which is something possible for > writers and not for readers. > > The rules for different syntaxes are different anyway - RDF/XMl has > special rules for properties. > > > What do you mean with "keep the original user input"? > You said: > [[ > If the user provided invalid > URI values, they need to be presented back to the user with an error > message, giving him/her a chance to correct the errors. > ]] > > Andy > > > > > On Tue, Jul 26, 2016 at 11:32 AM, Andy Seaborne <a...@apache.org> wrote: > >> On 26/07/16 10:23, Martynas Jusevičius wrote: > >>> > >>> Andy, > >>> > >>> "allowBadURIs" was my next move, I will try that later today and report > >>> back. > >>> > >>> Any reason why this cannot be exposed uniformly on the WriterRIOT > >>> level? Like it is on ReaderRIOT. > >> > >> > >> RDF/XML is the only case that checks IIRC. > >> > >> Writers output what they can. They assume the model is legal RDF and do > >> their best. There is a myriad of "illegal RDF" cases and what they can > and > >> can't write depends on the syntax. > >> > >> If you want to round trip user input - why not keep the original user > input? > >> > >> Andy > >> > >> > >>> > >>> On Tue, Jul 26, 2016 at 11:15 AM, Andy Seaborne <a...@apache.org> > wrote: > >>>> > >>>> Turtle-class syntaxes print bad URIs. > >>>> > >>>> For RDF/XML, does setting "allowBadURIs" work? > >>>> > >>>> > >>>> > https://jena.apache.org/documentation/io/rdfxml_howto.html#advanced-rdfxml-output > >>>> > >>>> Andy > >>>> > >>>> > >>>> On 26/07/16 09:34, Martynas Jusevičius wrote: > >>>>> > >>>>> > >>>>> RDF/XML (plain) in this case. I would of course prefer a > >>>>> format-agnostic solution. > >>>>> > >>>>> On Tue, Jul 26, 2016 at 10:21 AM, Andy Seaborne <a...@apache.org> > wrote: > >>>>>> > >>>>>> > >>>>>> Which serialization format are you working with? > >>>>>> > >>>>>> Andy > >>>>>> > >>>>>> > >>>>>> On 25/07/16 22:44, Martynas Jusevičius wrote: > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> Hey, > >>>>>>> > >>>>>>> I was planning to set an ErrorHandler on WriterGraphRIOT instance, > but > >>>>>>> it turns such setter does not exist. > >>>>>>> > >>>>>>> My ErrorHandler allows invalid URIs to be read without throwing > >>>>>>> exceptions. However model.write() throws BadURIException when > writing > >>>>>>> them. So round-tripping such Model currently does not work. How do > I > >>>>>>> handler writer errors? > >>>>>>> > >>>>>>> I think it would make sense to reuse the error handler between RIOT > >>>>>>> readers and writers. > >>>>>>> For example, if it is set to strict, both throw exceptions on > invalid > >>>>>>> URIs. > >>>>>>> If it is set to lax, invalid URIs are allowed during both during > >>>>>>> parsing and writing. > >>>>>>> That would make round-tripping easy. > >>>>>>> > >>>>>>> Martynas > >>>>>>> atomgraph.com > >>>>>>> > >>>>>> > >>>> > >> > >