- From: Hausenblas, Michael <michael.hausenblas@joanneum.at>
- Date: Tue, 31 Jul 2007 21:25:29 +0200
- To: <dbooth@hp.com>
- Cc: <semantic-web@w3.org>
David,
Thanks for this work; it surely helps a lot to find a way through the
'URI ref jungle'. We recently had a somehow related discussion
in the RDFa-TF regarding @resource and @href ...
One minor issue in your (btw nice to read) report I found
is the following. In the 'Example: A URI for the Moon' you write:
[...] such that an attempt to dereference that
URI will result in a 303-redirect to
http://dbooth.org/2007/moon/descr.html
Shouldn't this be http://dbooth.org/2007/moon/decl.html?
Anyway, http://dbooth.org/2007/moon/descr.html gives a 404, which is
not really helpful ;)
Cheers,
Michael
----------------------------------------------------------
Michael Hausenblas, MSc.
Institute of Information Systems & Information Management
JOANNEUM RESEARCH Forschungsgesellschaft mbH
Steyrergasse 17, A-8010 Graz, AUSTRIA
----------------------------------------------------------
> -----Original Message-----
> From: linking-open-data-bounces@simile.mit.edu
> [mailto:linking-open-data-bounces@simile.mit.edu] On Behalf
> Of Booth, David (HP Software - Boston)
> Sent: Tuesday, July 31, 2007 8:59 PM
> To: Pat Hayes; Hugh Glaser
> Cc: Tim Berners-Lee; semantic-web@w3.org; www-tag@w3.org;
> Linking Open Data
> Subject: [Linking-open-data] URI declaration versus use (Was:
> TerminologyQuestion)
>
> Before discussing how to name what you get when you
> dereference a non-information resource URI, we should be
> clearer about what it is that we wish to name. In
> discussions thus far on this list, I think there has been
> insufficient differentiation between assertions that are part
> of a URI declaration, and normal assertions about a resource.
> This prompted me to write up several thoughts that I've had
> for some time that I hope will add value to this discussion:
>
> Title: URI Declaration Versus Use
> URL: http://dbooth.org/2007/uri-decl/
> Abstract:
> [[
> It is important to distinguish between a URI declaration and
> regular assertions about the URI's associated resource. This
> distinction is not readily apparent in RDF, because URIs are
> declared implicitly in RDF.
> The problem becomes apparent when the URI of a
> non-information resource is dereferenced in an attempt to
> locate related information. This paper motivates and
> explains this distinction, defines the notions of URI
> declaration and URI declaration page, and suggests some
> related best practices.
> ]]
>
> Comments on this document are invited. To facilitate comment
> on specific portions, the content is also included below in
> plain text.
> However, the HTML version is easier to read.
>
> ==============================================================
> =========
>
> URI Declaration Versus Use
>
> David Booth, Ph.D.
> HP Software
> Comments are invited: dbooth@hp.com
>
> Latest version: http://dbooth.org/2007/uri-decl/ Views
> expressed herein are those of the author and do not
> necessarily reflect those of HP.
>
> Abstract
>
> It is important to distinguish between a URI declaration and
> regular assertions about the URI's associated resource. This
> distinction is not readily apparent in RDF, because URIs are
> declared implicitly in RDF. The problem becomes apparent
> when the URI of a non-information resource is dereferenced in
> an attempt to locate related information. This paper
> motivates and explains this distinction, defines the notions
> of URI declaration and URI declaration page, and suggests
> some related best practices.
>
> Table of Contents
>
>
> * Introduction
>
> o Example:_A_URI_for_the_Moon
>
> * URI_declaration
>
>
> # Definition_of_"URI_declaration"
> #
> Suggested_practice_P1_(URI_declaration_should_distinguish_the_
> resource)
> # Definition_of_"URI_declaration_page"
>
> o Names_versus_resources
>
>
> o Components_of_a_URI_declaration
>
> * Web_architecture_and_implicit_URI_declarations
>
> o The_"following_your_nose"_algorithm
>
> #
> Suggested_practice_P2_(Use_follow-your-nose_algorithm_to_publish_URI
> declarations)
>
>
>
> o Proposed_rule_for_implicit_URI_declarations
>
>
>
> #
> Proposed_rule_R1_(Publicaton_with_follow-your-nose_algorithm_r
> epresents
> implicit_URI_declaration)
> # Proposed_rule_R2_(converse_of_R1)
> # Suggested_practice_P3
> # Suggested_practice_P4
>
>
> * Explicit_URI_declaration_in_RDF
>
>
> Introduction
>
> When an HTTP URI is used to name something that is not a web
> page or web site (i.e., not an information_resource), it is
> important to distinguish between the declaration of that URI
> as a name for a particular resource, and regular assertions
> about that resource. This difference is important to Web
> architecture and to other parties that wish to use the URI in
> assertions about
> the resource. The issue arises when another party attempts to
> dereference the
> URI in order to learn about the URI and its associated
> resource. The other party may wish to make use of the URI as
> a means of referring to the resource, without necessarily
> believing other assertions that are made about the resource.
>
> This difference is particularly confusing in RDF. Many
> programming languages distinguish between variable
> declarations and variable use, but RDF does not have a
> corresponding mechanism for URI declaration. Thus, when RDF
> statements are served from a URI, it may not be evident which
> of those RDF statements are intended to constitute a URI
> declaration and which are intended to be regular assertions
> about the resource. They all look the same. In fact, given
> an RDF triple, there is no way to determine, by examining the
> triple, whether that triple should be considered a part of
> the URI declaration or a regular assertion about the
> resource. It is up to the URI owner to indicate this distinction.
>
> This paper describes the distinction between URI declaration
> and use, and suggests some best practices. Even though this
> paper is written in terms of URIs, the concepts apply equally
> to IRIs. (See RFC_3986 and RFC_3987 for advice on minting
> URIs and IRIs.) The following example will be used to
> illustrate the ideas.
>
> Example: A URI for the Moon
>
> Suppose I mint a URI for the moon:
> http://dbooth.org/2007/moon/ . I own the domain dbooth.org,
> so I have the authority to do so. (See
> URI_ownership.)
> Since the moon is not an information resource, in conformance
> with the W3C TAG's_httpRange-14_decision I have configured my
> server such that an attempt to dereference that URI will
> result in a 303-redirect to http://dbooth.org/2007/
> moon/descr.html , which, when dereferenced, returns a page
> containing the following statements:
>
> Statement M1: The URI http://dbooth.org/2007/moon/ hereby
> names a particular resource, such that:
> a: http://dbooth.org/2007/moon/ is a moon.
> b: http://dbooth.org/2007/moon/ orbits the Earth.
>
> Statement M2: http://dbooth.org/2007/moon/ is made of green cheese.
>
> Statement M3: For more information about
> http://dbooth.org/2007/moon/ , see also
> http://dbooth.org/2007/moon/about.html .
>
> The role of these statements is discussed below.
>
> URI declaration
>
> Definition: A URI declaration is a set of statements that
> authoritatively declare the association between a URI and a
> particular resource.
>
> A URI declaration is a performative speech act.[@@ref?@@]
> Its publication by someone who has the authority to make the
> declaration -- i.e., the URI owner or delegate -- defines the
> association between a URI and a resource.
> Therefore,
> another party wishing to use that URI to denote that resource
> should take all assertions that constitute part of that URI
> declaration as true by definition.
> This is a take-it-or-leave-it proposition: If you do not want
> to believe the assertions in the URI declaration, then you
> should not use that URI, because, in essence, you are trying
> to talk about a different resource -- one that shares some,
> but not all, of the same characteristics.
>
> Suggested practice P1: A URI declaration should include
> sufficient information to distinguish the named resource from
> other resources, such that other parties can use the URI
> confidently to make statements about the resource. [@@Is
> there a WebArch ref for this?@@]
>
> For example, statement M1.a above ("http://dbooth.org/2007/moon/ is a
> moon") is
> not sufficient to uniquely identify it, because there are many moons.
> However
> M1.a and M1.b together are sufficient to uniquely the
> intended resource, at least for many purposes. Beware that
> sufficient information for one purpose may not be sufficient
> information for another purpose. Pat Hayes has several times
> pointed out that one application may require finer (or
> different) distinctions than another.[@@add ref@@] Thus, P1
> is a guideline -- not a hard and fast rule.
>
> Definition: A URI declaration page is an information resource
> whose primary purpose is to provide URI declarations.
>
> A single URI declaration page could also contain declarations
> for multiple URIs. Thus, the relationship between URI
> declaration pages and resources is many-to-many.
>
> Names versus resources
>
> We are treating a URI as a name for a resource, so that when
> the name is used in an assertion about the resource, it will
> be understood as referring to the
> resource. But the treatment of a name in an explicit name
> declaration
> is very
> different: it is treated simply as a literal sequence of characters.
> Thus, in
> the URI declaration phrase "The URI
> http://dbooth.org/2007/moon/ hereby names .
> . .", http://dbooth.org/2007/moon/ refers only to a sequence
> of characters that conforms to URI syntax, whereas in the
> statement "http://dbooth.org/2007/ moon/ is a moon" it refers
> to a resource. In other words, the subject of a URI
> declaration as a whole (such as M1) is a URI string -- not a
> resource --
> whereas the subject of a regular assertion is a resource,
> even though some subordinate parts of the URI declaration
> (such as M1.a and M1.b) may use resources as subjects.
>
> This distinction is readily apparent in a language like Java
> that uses explicit name declarations, but not in RDF, because
> RDF does not have explicit name declarations. Nonetheless,
> the difference is important because other parties wishing to
> use http://dbooth.org/2007/moon/ to make statements about the
> moon need to know whether a statement like M2,
> "http://dbooth.org/2007/moon/ is made of green cheese", is a
> subordinate part of the URI declaration or a separate
> statement about the moon.
>
> Components of a URI declaration
>
> More precisely, a URI declaration consists of:
>
> 1. a URI u;
> 2. a predicate p(x), where x is a resource; and
> 3. a performative speech act, issued by the URI's owner or
> delegate, that
> indicates u and p(x).
>
> The URI declaration can be understood as stating:
>
> "If a resource r exists such that p(r) is true, then
> henceforth u denotes r.
> Otherwise, if no such resource exists, the URI declaration is
> malformed."
>
> It is important to realize that the mere pairing of u and
> p(x) does not constitute a URI declaration without a
> distinguishable speech act.
> Thus, a
> critical aspect of any mechanism for making URI declarations
> is the ability to distinguish the performative speech act
> from other, normal speech.
> There are
> many ways this can be done; usually context is involved.
>
> In the moon example above, URI u is
> http://dbooth.org/2007/moon/ , predicate p
> (x) is the conjunction of M1.a and M1.b, and x is the moon.
> Note that if M2 ("http://dbooth.org/2007/moon/ is made of
> green cheese") had also been a part of p(x) then the URI
> declaration would have been malformed, since there is no moon
> that orbits the Earth and is made of green cheese. The
> performative speech act is the act of publishing statement M1
> ("The URI http://dbooth.org/ 2007/moon/ hereby names . . .
> ."). In this example, the English phrasing " . .
> . hereby names . . ." distinguishes this performative speech
> act from M2, which is intended as normal speech.
>
> The word "authoritative" has sometimes caused confusion in
> discussions of URI
> declarations: if a URI 303-redirects to a URI declaration
> page, in what sense
> is that page "authoritative"? A URI declaration page is
> authoritative
> in its
> URI declarations -- i.e., in declaring that URI to be a name
> for a particular resource -- but that does not mean that the
> assertions that the page contains are necessarily true.
>
> Web architecture and implicit URI declarations
>
> How should URI declarations be indicated on the Web?
>
> The "following your nose" algorithm
>
> [Editorial note: Somewhere a more precise definition of this
> algorithm should be provided. I didn't bother to do so here,
> but it is needed. -- DBooth]
>
> Given a URI, it is very helpful to others if that URI's
> declaration page can be readily located, using the URI as a
> starting point:
>
> Suggested practice P2: URI owners should mint and support
> their URIs such that an attempt to dereference a URI of a
> non-information resource will lead to a URI declaration page
> for that URI, using one of the following
> mechanisms:
>
> * If the URI contains a fragment identifier, then the racine
> of the URI (i.e.,
> the part before the #) should lead to a suitable URI
> declaration page.
> * If the URI does not contain a fragment identifier, then an
> attempt to
> dereference the URI should yield a 303-redirect that leads
> to a suitable URI
> declaration page.
>
> [@@Is there a WebArch reference for this?@@]
>
> Thus, http://dbooth.org/2007/moon/ 303-redirects to its URI
> declaration page at http://dbooth.org/2007/moon/descr.html .
>
> Proposed rule for implicit URI declarations
>
> Page http://dbooth.org/2007/moon/descr.html uses English both
> to make clear that a URI declaration is intended, and to
> distinguish between the URI declaration and regular
> assertions about the moon. But what should be done in other
> cases, such as RDF, that do not have a mechanism for explicit
> URI declarations?
>
> I propose that the Web architecture treat the act of serving
> a page using either of the above two follow-your-nose
> mechanisms -- hash or 303 -- as a performative speech act of
> URI declaration:
>
> Proposed rule R1: Given a URI u, if either of the
> follow-your-nose mechanisms described above yields a
> representation r, then, unless otherwise indicated, the
> conjunction of assertions made in r represents an implicit
> URI declaration for u.
>
> And the converse:
>
> Proposed rulel R2: Unless otherwise indicated (such as by
> rule R1 or by some explicit indication), publication of
> assertions about a resource denoted by a URI should not be
> construed as a performative speech act of declaring that URI.
>
> This does not mean that rule R1 should be the only way to
> declare a URI.
> There
> could be other mechanisms also, particularly explicit mechanisms.
>
> Rule R1 clearly has the first two components of a URI
> declaration, but what is the performative speech act? First,
> publication of the page -- regardless of the URI that leads
> to it -- represents the utterance of the declaration.
>
> Second, the follow-your-nose algorithm provides prima facie
> evidence that the declaration is authorized by the owner of
> the originating URI. This is important because the domain
> name in the URI of the declaration page could be quite
> different from the domain name of the original resource URI.
> This act of publishing the page in response to the
> follow-your-nose algorithm from the original URI is what
> distinguishes this performative speech act from other, normal speech.
>
> Rule R1 also implies that, unless otherwise indicated, every
> assertion in the page obtained should be considered a part of
> the URI declaration.
> Therefore:
>
> Suggested practice P3: A URI declaration page should avoid
> making assertions about the URI's associated resource that
> are not intended to be a part of that URI's declaration.
>
> In the moon example above, this means that statement M2
> ("http://dbooth.org/ 2007/moon/ is made of green cheese")
> should not be included in an equivalent RDF page, because if
> it were it would be considered a part of the URI declaration
> and the URI http://dbooth.org/2007/moon/ would thus be
> unusable to parties who wish to refer to the moon and do not
> choose to believe the moon is made of green cheese. On the
> other hand, statement M3 ("For more information about
> http://dbooth.org/2007/moon/ , see also http://dbooth.org/2007/moon/
> about.html") is safe to include in the URI declaration page,
> because it is merely a suggestion: it does not affect the
> satisfiability of p(x).
> Notice
> that by rule R2, page http://dbooth.org/2007/moon/about.html
> should not be interpreted as a URI declaration page for
> http://dbooth.org/2007/moon/ .
>
> This also means that if several URIs share the same URI
> declaration page, examination of the URI declaration page via
> one of those URIs will not necessarily indicate whether the
> other URIs are also being declared. To avoid the
> inefficiency of having to dereference each of those URIs in
> order to determine their URI declarations, either specialized
> URI prefixes can be defined (as described in
> "Converting_New_URI_Schemes_or_URN_Sub-Schemes_to
> HTTP"), or explicit URI declaration mechanisms could be
> defined, such as the one proposed below.
>
> If a URI declaration page only contains URI declarations, how
> can other parties find other information about the associated
> resources?
>
> Suggested practice P4: A URI declaration page should provide
> links to other information about the resources whose URIs are
> declared by that page.
>
> This does not mean that a URI owner should be responsible for
> providing links to all other information about the associated
> resource. But providing links to other known sources of
> information would be helpful to others, and the URI
> declaration page is a logical place starting place to look
> for such links. It should be understood that providing a
> link does not imply any particular endorsement.
>
> Explicit URI declaration in RDF
>
> I do not know of any explicit URI declaration predicate that
> has already been defined for RDF -- please tell me if there
> is one -- but it would be easy to define one using named_graphs:
>
> If g is the URI of a named graph, and u is a URI, then the
> following N3 statements provide an explicit URI declaration for u:
>
> @prefix dbooth: <http://t-d-b.org?http://dbooth.org/2007/uri-decl/#> .
> gdbooth:declares "u".
>
> Note the quotes around URI u, because in the declaration
> context it must be treated as a literal string -- not a
> reference to a resource.
>
> Acknowledgements
>
> Thanks to Jeremy Carroll for review comments.
>
> Comments by all are invited. If I have missed a reference
> that I should have included, please let me know.
>
> --------------------------------------------------------------
> ----------
> -------
> 30-Jul-2007: Added TOC, clarified speech act, misc minor fixes..
> 25-Jul-2007: Original draft.
>
> ==============================================================
> =========
>
> David Booth, Ph.D.
> HP Software
> +1 617 629 8881 office | dbooth@hp.com
> http://www.hp.com/go/software
>
> Opinions expressed herein are those of the author and do not
> represent the official views of HP unless explicitly stated otherwise.
>
> _______________________________________________
> Linking-open-data mailing list
> Linking-open-data@simile.mit.edu
> http://simile.mit.edu/mailman/listinfo/linking-open-data
>
Received on Tuesday, 31 July 2007 19:25:39 UTC