Re: relative uri references

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