On 26/02/2023 17:08, Andy Seaborne wrote:


On 24/02/2023 14:24, Andy Seaborne wrote:
Issue for updating ARP to use IRIx, as described below.

https://github.com/apache/jena/issues/1773

Draft PR:

https://github.com/apache/jena/pull/1774

This has xmlinput0 (the state of ARP 4.7.0, using jena-iri directly) with ARP0 and RDFXMLReader0 as classes.

The package xmlinput is the updated RDF/XML parsing code. The class ARP in xmlinput is deprecated as a warning that running ARP without the rest of Jena is not going to continue except while xmlinput0 exists.

     Andy

Merged.

It would be good if users that have "file:" ontology imports try out the development build now this is merged.

The treatment of file URIs with a relative file path is different between RDF/XML and other formats that resolve URIs: Turtle/TriG and SPARQL.

Base = file:///home/somePath/
Turtle::

PREFIX ex: <file:///example/>
<x> ex:p <file:rel> .

gives for the object:
    <file:///home/somePath/rel> .

whereas

RDF/XML::

<rdf:RDF
   xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
   xmlns:ex='file:///example/'>
  <rdf:Description rdf:about="x">
    <ex:p rdf:resource="file:rel"/>
  </rdf:Description>
</rdf:RDF>

gives
    <file:rel> .

RDF/XML is treating a file: URL as an opaque URL (terminology from RFC 2396 which disappeared in RFC 3986).

PR:1774 makes RDF/XML resolve relative "file:" paths at parsing time.

This impacts tracking owl:imports where there are "file:" URLs with a filesystem-relative path. It matters when reading a local RDF/XML file from a different directory to where the file resides. There is a change to track imports by resolved URI rather than unresolved URI. (Actually, it'll depend whether the import is referenced from Turtle or from RDF/XML.)

The better to handle relative URI references is not to include the scheme.

Generally to preserve relative URIs, the safe way is have a custom URI scheme "relative:" and remove that after processing.

    Andy

Reply via email to