BTW.. why is there this confusing class hierarchy? IRIFactory extends IRIFactoryImpl extends AbsIRIFactoryImpl implements IRIFactoryI
On 8 January 2015 at 13:30, Andy Seaborne <[email protected]> wrote: > On 08/01/15 12:57, Martynas Jusevičius wrote: >> >> Thanks. >> >> Couldn't Jena's IRI be made to extend java.net.URI, override the >> methods that differ, and still be accepted where URI is expected? > > > java.net.URI is a final class. > > Probably other issues as well (IRIs are unicode, URIs are ASCII ; RFC 2396 > vs 3896) but that's a blocker in itself. > > IRIs are not particularly cheap - the resolver has caching to mitigate this. > > The parsing rules such as the scheme-specific stuff (that IRI adds over > j.n.URI) can have a noticeable cost (e.g. parsing). Another cost is the use > of regexs - using java.net.URI to parse the structure (it has a hand-written > URI parser) might help partly. > > Slightly bizarrely, if you pass in the components of a java.net.URI, java > builds a string and parses it to get the components again. > > Adding IRI.toURI operation might help c.f. IRI.toURL. Contributions > welcome. > > Andy > > >> >> On Tue, Jan 6, 2015 at 10:27 PM, Andy Seaborne <[email protected]> wrote: >>> >>> On 06/01/15 16:22, Martynas Jusevičius wrote: >>>> >>>> >>>> Hey, >>>> >>>> I'm reading URIs from request input that will end up in an RDF Model. >>>> They can be relative, in which case they need to be resolved, and they >>>> can be invalid, in which case they need to be rejected. >>>> >>>> What I'm looking for is to replace new URI/URI.create() and >>>> URI.resolve(uri) usages with a more RDF-compliant solution. >>>> >>>> I wanted to check if IRIResolver is the right class for this purpose? >>>> Are there any examples? >>> >>> >>> >>> org.apache.jena.riot.system.IRIResolver (not the legacy one in the old N3 >>> parser). >>> >>> This uses the jena-iri library which is quite, err, "precise". >>> >>> See also the parsing pipeline that uses CheckerIRI for checking. In >>> fact, >>> you might want to use StreamRDF (where all parers send things). >>> >>> Andy >>> >>>> >>>> >>>> Thanks. >>>> >>>> Martynas >>>> >>> > -- Stian Soiland-Reyes, myGrid team School of Computer Science The University of Manchester http://soiland-reyes.com/stian/work/ http://orcid.org/0000-0001-9842-9718
