- From: Ivan Herman <ivan@w3.org>
- Date: Mon, 24 Nov 2008 14:01:39 +0100
- To: Boris Motik <boris.motik@comlab.ox.ac.uk>
- CC: 'Alan Ruttenberg' <alanruttenberg@gmail.com>, 'W3C OWL Working Group' <public-owl-wg@w3.org>
- Message-ID: <492AA5B3.10305@w3.org>
Hi Boris, I actually tried to re-read what you wrote in your original reply and, I must admit, I am not sure I understand. You say: [[[ In the functional-style syntax ontology documents, only namespace declarations are expanded, and relative URIs are not expanded. I think this is correct: we never say that the URIs of ontology entities must be absolute. Thus, if someone actually creates ontology entities with relative URIs, the functional-style syntax will correctly capture this. Note that URIs have a well-defined identity. Therefore, a relative URI provides a perfect way of identifying some ontology entity - that is, it is a URI just like any other. ]]] What I do not understand is your statement that 'relative URI [...] is a URI just like any other'. Looking at the URI spec (I use the Apache version because it has nice hyperlinks built in), http://labs.apache.org/webarch/uri/rfc/rfc3986.html#relative-ref says that a relative URI expresses a 'real' URI (they call it target URI there) using the references resolution mechanism in http://labs.apache.org/webarch/uri/rfc/rfc3986.html#reference-resolution which also says that [[[ relative references are only usable when a base URI is known. A base URI must be established by the parser prior to parsing URI references that might be relative. ]]] According to http://labs.apache.org/webarch/uri/rfc/rfc3986.html#base-retrieval [[[ If no base URI is embedded and the representation is not encapsulated within some other entity, then, if a URI was used to retrieve the representation, that URI shall be considered the base URI. ]]] Ie, a relative URI is not a 'URI just like any other', it makes sense only in term of a base URI (which can be, of course, a file:/// URI of the encapsulating file). This is not dependent on the syntax used. As a consequence, I believe that a relative URI in a FS syntax document should be viewed as an abbreviation for a full URI with the file name or retrieval URI of that FS document serving as a base. This is by no means different from what happens in the M'ter syntax, OWL/XML, RDF/XML, or Turtle. If all this is true, then introducing a @base to the FS and the M'ter syntax does make sense if we want a final control over the exact interpretation of the relative URI-s in the FS. (Alternatively, we could say that the base URI for a relative URI is the Ontology URI if it exists, but I am not 100% sure that mixing functionalities on that level is wise.) Cheers Ivan Boris Motik wrote: > Hello, > > The main difficultly I see is that turning base off on a particular subset of the document might not be straightforward. You might > need to turn base off in case you really want to use relative Uris to identify entities. Now in XML, this is not difficult because > any element can contain xml:base; hence, you can always locally turn xml:base off by placing xml:base on the element with its value > equal to some opaque URI. To simulate that, we'd need to be able to enclose arbitrary subsets of the FS document into a local base > declaration. It is doable, but I wonder whether it is worth the trouble. > > Note that in FS you can have a default namespace. Although this is not identical to xml:base (for example, this default namespace is > not affected by the physical URI of the document, and namespace expansion is by simply pasting the prefix rather than using URI > resolution algorithm), it achieves a similar goal as xml:base: you can write most of the URIs in the document without prefixing them > with any namespace. > > Please let me know if you consider this insufficient. > > Regards, > > Boris > >> -----Original Message----- >> From: Ivan Herman [mailto:ivan@w3.org] >> Sent: 24 November 2008 11:49 >> To: Boris Motik >> Cc: 'Alan Ruttenberg'; 'W3C OWL Working Group' >> Subject: Re: relative uri references >> >> Boris, >> >> did we ever consider adding a 'base', like 'xml:base', to the functional >> and the m'ter syntaxes? >> >> Note that this is the only difference, for example, between the turtle >> specification as a team submission[1] and the earlier turtle >> specification: the former introduced a @base directive (alongside the >> @prefix ones). It might make sense to do this for the FS and M'Ter. >> >> Just a thought >> >> Ivan >> >> >> >> [1] http://www.w3.org/TeamSubmission/turtle/ >> >> Boris Motik wrote: >>> Hello, >>> >>> >>> >>> In the RDF syntax, the resolution of URI references is governed fully by >>> the underlying RDF format. For example, if you are working with RDF/XML, >>> then the RDF parser should use xml:base. In addition, the XML parser >>> will expand any XML entities as well. There is no equivalent of the >>> Namespace declaration in the RDF syntax. >>> >>> >>> >>> In the XML Syntax, there are no Namespace declarations either. Again, >>> you have is xsd:base for relative URIs, and this is explicitly mentioned >>> in the document. Furthermore, we don't need a specific URI abbreviation >>> mechanism is because XML Syntax ontology documents can use XML entities >>> for abbreviation of long URIs. >>> >>> >>> >>> The functional-style syntax and the Manchester syntax, in contrast, >>> cannot rely on other specifications (such as RDF of XML) for >>> abbreviation and expansion of URI references, so they need their own URI >>> resolution mechanisms. In the functional-style syntax ontology >>> documents, only namespace declarations are expanded, and relative URIs >>> are not expanded. I think this is correct: we never say that the URIs of >>> ontology entities must be absolute. Thus, if someone actually creates >>> ontology entities with relative URIs, the functional-style syntax will >>> correctly capture this. >>> >>> >>> >>> Note that URIs have a well-defined identity. Therefore, a relative URI >>> provides a perfect way of identifying some ontology entity - that is, it >>> is a URI just like any other. >>> >>> >>> >>> Hence, it seems to me that we don't really need to say anything more >>> than what we've already said. We might only introduce additional >>> clarification into the XML Syntax document about relative URIs: we might >>> say that if you want to store such URIs, then you should explicitly turn >>> xml:base off on the element whether you are doing so; otherwise, your >>> relative URIs will accidentally be resolved against the xml:base and >>> that wopuld lead to problems. You can turn this resolution off by >>> placing on the element an xml:base with some opaque URI. >>> >>> >>> >>> Regards, >>> >>> >>> >>> Boris >>> >>> >>> >>> ------------------------------------------------------------------------ >>> >>> *From:* public-owl-wg-request@w3.org >>> [mailto:public-owl-wg-request@w3.org] *On Behalf Of *Alan Ruttenberg >>> *Sent:* 24 November 2008 06:05 >>> *To:* W3C OWL Working Group >>> *Subject:* relative uri references >>> >>> >>> >>> Do we not have to say how these are resolved in the functional and >>> manchester syntax, and might it not be best to explicitly say so for all >>> syntaxes? >>> >>> >>> >>> -Alan >>> >> -- >> >> Ivan Herman, W3C Semantic Web Activity Lead >> Home: http://www.w3.org/People/Ivan/ >> PGP Key: http://www.ivan-herman.net/pgpkey.html >> FOAF: http://www.ivan-herman.net/foaf.rdf > > -- Ivan Herman, W3C Semantic Web Activity Lead Home: http://www.w3.org/People/Ivan/ PGP Key: http://www.ivan-herman.net/pgpkey.html FOAF: http://www.ivan-herman.net/foaf.rdf
Received on Monday, 24 November 2008 13:02:32 UTC