Re: relative uri references

Boris Motik wrote:
> Please note that the functional-style syntax currently has no mechanism for resolving relative URIs against the base of the document
> or an explicitly specified base. 

I think that is the essence of the discussion. And the question is
whether we need such mechanism or not; everything else follows. I am not
a user of FS style syntaxes for OWL, ie, I do not have an experience in
that; my experience is on the RDF side (whether RDF/XML or Turtle) where
such mechanism is clearly defined and used.

Is there some sort of a fundamental reason why such mechanism is not
included in the FS? What about the M'ter syntax?

Ivan


>                                   The only thing you have is namespace abbreviations, and from the spec it is clear that these are
> resolved during parsing (i.e., before you go and look at the imports). Consequently, all URIs in a functional-style syntax document
> must be absolute (they must be given either in full or as CURIEs). Therefore, there is no question about round-trippability of the
> functional-style syntax documents at the moment: the spec is round-trippable.
> 
> The question whether we need a base resolution mechanism is a completely unrelated story. The use case of being able to move the
> files around is compelling, and we can/should discuss it independently from the state of the current spec.
> 
> Regards,
> 
>  Boris
> 
>> -----Original Message-----
>> From: Alan Ruttenberg [mailto:alanruttenberg@gmail.com]
>> Sent: 24 November 2008 16:43
>> To: Boris Motik
>> Cc: Peter F. Patel-Schneider; ivan@w3.org; public-owl-wg@w3.org
>> Subject: Re: relative uri references
>>
>> It is a question of when the absolute URIs are resolved. If you don't
>> supply the base explicitly, then the base is defined to be the
>> location of the document. Since you may move a document, the URI can
>> be resolved differently if it is loaded from different locations.
>> However if the document is read and reserialized with the absolute
>> rather than relative URIs then one has lost the distinction between
>> which URIs are the sort that should be resolved relative to the
>> document location versus which were given as absolute in the first
>> place.
>>
>> -Alan
>>
>> On Mon, Nov 24, 2008 at 11:36 AM, Boris Motik
>> <boris.motik@comlab.ox.ac.uk> wrote:
>>> But hasn't Peter just shown us that all URIs are essentially absolute? Given this fact, all URIs
>> can be round-tripped without any
>>> problem.
>>>
>>>        Boris
>>>
>>>> -----Original Message-----
>>>> From: Alan Ruttenberg [mailto:alanruttenberg@gmail.com]
>>>> Sent: 24 November 2008 16:22
>>>> To: Boris Motik
>>>> Cc: Peter F. Patel-Schneider; ivan@w3.org; public-owl-wg@w3.org
>>>> Subject: Re: relative uri references
>>>>
>>>> Hi Boris,
>>>>
>>>> I want to reiterate my concern about the issue of relative URIs in
>>>> imports. Having things defined so that these can not possibly be round
>>>> tripped would be a real problem.
>>>>
>>>> -Alan
>>>>
>>>> On Mon, Nov 24, 2008 at 11:14 AM, Boris Motik
>>>> <boris.motik@comlab.ox.ac.uk> wrote:
>>>>> Hello,
>>>>>
>>>>> I think this is actually much better. Given that we can't have relative IRIs anyway, there is no
>>>> point in not having the default
>>>>> prefix defined. Hence, I've changed the spec according to your suggestion.
>>>>>
>>>>> Regards,
>>>>>
>>>>>        Boris
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Peter F. Patel-Schneider [mailto:pfps@research.bell-labs.com]
>>>>>> Sent: 24 November 2008 15:39
>>>>>> To: ivan@w3.org
>>>>>> Cc: boris.motik@comlab.ox.ac.uk; alanruttenberg@gmail.com; public-owl-wg@w3.org
>>>>>> Subject: Re: relative uri references
>>>>>>
>>>>>> Actually the structural specfication uses IRIs (from RFC 3987) as
>>>>>> identifiers (but it calls them URIs - section 2.3).  My reading of
>>>>>> RFC3987 http://www.ietf.org/rfc/rfc3987.txt has an IRI as absolute and
>>>>>> has an optional fragment (at least, IRI has the same expansion as
>>>>>> absolute-IRI plus an optional fragment).  Thus the structural
>>>>>> specfication is correct with respect to the need for absolute URIs.
>>>>>>
>>>>>> In the functional syntax (section 2.3) one can use
>>>>>> - an IRI - which is absolute and allows fragments
>>>>>> - a curie - which is the combination of
>>>>>>   - a optional namespace name - which expands to an IRI
>>>>>>   - an irelative-ref - which is appended to the IRI
>>>>>>
>>>>>> The only issue then is ontologies that use curies with no namespace
>>>>>> names in documents that do not have a namespace expansion for the empty
>>>>>> namespace.  The rule for this just uses the irelative-ref, which can
>>>>>> result in a relative URI (but this is forbidden because "[t]he full URI
>>>>>> obtained by this expansion must be a valid URI" [Section 3.2.1.]).
>>>>>>
>>>>>> Therefore the following document is not a valid OWL 2 ontology:
>>>>>>    Ontology(foo)
>>>>>> because the ontology URI does not expand into a valid IRI.
>>>>>>
>>>>>> However, in my view it would be better to be more clear, by modifying
>>>>>> the CURIE expansion rules at the end of 3.2.1 as follows.
>>>>>>
>>>>>> * If the prefix of the CURIE is not present, then
>>>>>>   prefix definitions of the ontology document being parsed MUST contain
>>>>>>   a definition of the empty (missing) prefix. The resulting
>>>>>>   full URI is obtained by concatenating the namespace with the CURIE's
>>>>>>   reference.
>>>>>> * If the prefix of the CURIE is present, then either Table 2 or the
>>>>>>   prefix definitions of the ontology document being parsed MUST contain
>>>>>>   a definition for the prefix. The resulting
>>>>>>   full URI is obtained by concatenating the namespace with the CURIE's
>>>>>>   reference.
>>>>>>
>>>>>> peter
>>>>>>
>>>>>>
>>>>>> From: Ivan Herman <ivan@w3.org>
>>>>>> Subject: Re: relative uri references
>>>>>> Date: Mon, 24 Nov 2008 15:49:59 +0100
>>>>>>
>>>>>>> Boris,
>>>>>>>
>>>>>>> at the moment, the syntax document says that OWL uses URIs for
>>>>>>> identifiers which are more than just symbols. And yes, one of the core
>>>>>>> approach on the Semantic Web is to use URIs (well, plus bnodes and
>>>>>>> literals, but let us put that aside as they are not relevant for the
>>>>>>> discussion). So I would propose to that on the structural level we
>>>>>>> indeed have full blown, ie, absolute URIs.
>>>>>>>
>>>>>>> Ivan
>>>>>>>
>>>>>>> Boris Motik wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> Well, it is clear that in the context of Internet protocols, relative URIs don't make
>> sense:
>>>> you
>>>>>> can't make a GET request from a
>>>>>>>> relative URI; instead, you always need an enclosing base URI to do so.
>>>>>>>>
>>>>>>>> From a logic point of view, however, a URI is nothing more than a symbol. Thus, a URI
>>>> <blah.owl>
>>>>>> is a symbol that is completely
>>>>>>>> different from, say, <http://www.example.com/blah.owl>. These two URIs are not identical,
>> so
>>>>>> there is no problem from a logical
>>>>>>>> point of view. In other words, from a logical point of view, URIs are just symbols, and we
>>>> don't
>>>>>> care whether they are absolute or
>>>>>>>> relative.
>>>>>>>>
>>>>>>>> I don't know whether this may be objectionable from a Semantic Web point of view. This
>>>> question
>>>>>> is not as relevant to the
>>>>>>>> functional-style syntax as it is relevant to the structural specification (after all, FS
>> just
>>>>>> encodes the structural specification).
>>>>>>>> There, we are currently not requiring URIs to be absolute -- that is, we are allowing
>> classes
>>>>>> that are fully identified with the
>>>>>>>> relative URI <blah.owl>. Note that, <blah.owl> is in this case the full name of the class,
>> so
>>>> you
>>>>>> shouldn't perform any expansion.
>>>>>>>> To summarize, we need to decide whether it is OK to have classes that are completely
>>>> identified
>>>>>> by a relative URI. If we ban them
>>>>>>>> from the structural specification, then the FS should just follow suit.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>>   Boris
>>>>>>>>
>>>>>>>>> -----Original Message-----
>>>>>>>>> From: Ivan Herman [mailto:ivan@w3.org]
>>>>>>>>> Sent: 24 November 2008 13:02
>>>>>>>>> To: Boris Motik
>>>>>>>>> Cc: 'Alan Ruttenberg'; 'W3C OWL Working Group'
>>>>>>>>> Subject: 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
>>>>>>> --
>>>>>>>
>>>>>>> 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 Tuesday, 25 November 2008 09:01:01 UTC