Re: "tdb" and "duri" URI schemes...

Larry Masinter wrote:
> This idea has been bouncing around for such a long time,
> but I updated the document 
> 
> http://tools.ietf.org/html/draft-masinter-dated-uri-07

Hi Larry,

some proper feedback for you this time, comments out-dented:


    This document defines two URI schemes.  The first, 'duri' (standing
    for "dated URI"), allows indicating a URI as of a particular date
    (and time)...

As Jonathan commented, suggest [[[
  allows indicating a resource as of a particular date (and time).
]]]

    The second scheme, 'tdb' ( standing for "Thing Described By"),
    provides a way of using a way of minting URIs for anything that can
    be described, with the ability to fix the description to a given date
    or time.  The 'tdb' URI scheme may reduce the need to define define
    new URN namespaces merely for the purpose of creating stable
    identifiers for concepts or abstractions: it provides a ready means
    for identifying "non-information resources" by semantic indirection
    -- a way of creating a URI for anything.

Having difficulty making sense of "provides a way of using a way of 
minting URIs for", similarly defining what "anything that can be 
described is" (as opposed to "anything"), unsure if the "reduce the need 
to define new URN namespaces for" sentence is needed here.

Suggest [[[
  The second scheme, 'tdb' (standing for "Thing Described By"),
  allows indicating the thing described by a resource as of a
  particular date (and time). It also provides a ready means for
  identifying "non-information resources" by semantic indirection
  -- a way of creating a URI for anything.
]]]

      2.1.  'duri' Syntax  . . . . . . . . . . . . . . . . . . . . . .  6
      2.2.  tdb Syntax . . . . . . . . . . . . . . . . . . . . . . . .  6

should be [ 'tdb' Syntax ] with single quotes.

      7.1.  'duri' Scheme Template . . . . . . . . . . . . . . . . . . 13
      7.2.  tdb Scheme Template  . . . . . . . . . . . . . . . . . . . 13

same again missing the single quotes, [ 'tdb' Scheme Template ]

    In some cases, the guarantee of persistence comes through a promise
    of good management practice, such as is encouraged in "Cool URLs
    don't change" [COOL].  However, relying on promise of good management

Is the reference not to [ "Cool URIs don't change" ] ? (URIs rather than 
URLs)

    guarantee stability over time.  Despite best efforts and intentions,
    identifying information can change in unpredictable ways: domain
    names can disappear or be reassigned, name assigning organizations
    can change structure, responsibility, disappear, merge, or change in
    unpredictable ways.

Having trouble with "identifying information can change in unpredictable 
ways: " suggest [[[
  Despite best efforts and intentions, identified information can change
  unpredictably over time:
]]]

    There is a significant dependence in the interpretation of many URNs
    with the concept of "naming authority".  The authority is presumably
    some individual or organization both to insure uniqueness of
    assignment and also to help with understanding the meaning of the
    link between the name and the named.

Suggest [[[
  There is a significant dependence in the interpretation of many URNs
  from the concept of a "naming authority".  The authority is usually
  some individual or organization, both to insure uniqueness of
  assignment, and also to help with understanding the meaning of the
  link between the name and the thing named.
]]]

    However, authorities, whether individuals or organizations, have a
    lifetime, and must be consulted at some point to understand the
    bindings.  The functioning of names as unique identifiers and holders
    of meaning depends on having a reliable infrastructure of consulting
    the authority or the authorities records to determine the thing
    referenced.

Suggest swapping the final words "thing referenced" for [ thing named ].


    One might use a URI such as "mailto:" email address to identify a
    person, or a "http:" URI to identify an abstract comment.  However,
    this leaves the question of how one might identify, within the same
    context, both the system mailbox and the person to which it is
    assigned, or the web page at a http URI and the concept it describes.
    The 'tdb' URI scheme allows ready assignment of URIs for abstractions
    that are distinguished from the media content that describes them.

mailto identifies a mailbox not a person, and doesn't describe it, also 
a minor omission of a word and swapped to double-quotes rather than 
single quotes around mailto. "a http" or "an http"? also missing 
single-quotes and colon on http. Bit of a worry about the indication of 
1-1 mapping between and what's described, as indicated by "thing 
described by" and the text "the concept it describes" - could easily 
describe several "things". Final sentence may benefit from a re-word.

Suggest [[[
  One might use an 'http:' URI to identify a web page about a certain
  thing. However, this leaves the question of how one might identify,
  within the same context, both the web page and the thing it describes.

  The 'tdb' URI scheme addresses this issue by allowing ready assignment
  of identifiers for things which are described, distinguished from the
  identifier of the media content which describes it.
]]]

    The goal, then, of the 'tdb' URI scheme is to provide a mechanism
    which is, at the same time:

consider removing ", then," to read more assertive [ The goal of the ]

...
       explicitly bound: The mechanism by which the identified resource
       can be determined is explicitly included in the URI.

is this true?

       useful for non-networked items: Allows identification of resources
       outside the network: people, organizations, abstract concepts.

suggest [[[
   useful for non-networked items: Allows identification of resources
   outside the network: people, organizations, anything.
]]]

       no administration: The mechanism does not depend on reliable
       administrative processes of authorities for either assignment or
       interpretation.

suggest [[[
   no administration: The mechanism does not depend on administrative
   processes or authorities for either assignment or interpretation.
]]]



    A 'duri' URI takes the form:
         duri:<timestamp>:<encoded-URI>

    where <timestamp> is s sequence of digits representing a date and
    time (Section 2.4) and <encoded-URI> is an absolute URI-reference
    [RFC3986] in which any reserved character other than "/" have been
    percent-encoded (Section 2.3).  Note that the URI which has been
    encoded MAY include a fragment identifier.


I've reviewed this section and Section 2.3 thoroughly, several times 
over, and would first suggest that an absolute URI-reference with an 
optional fragment is just a "URI" as per the ABNF of RFC 3986 (not 
URI-reference).

Secondly, I'd suggest that the encoded-URI should drop the encoding part 
all together. Section 2.3 only states that "#" and "%" must be encoded. 
And further Section 2.3 states that this is because the fragment of a 
uri within a 'tdb' may include the description, however the description 
could be any where within the URI, indeed even the examples promote this 
usage: "tdb:2001:data:,The%20US%20president". And the "%" encoding looks 
like nothing but problems ahead.

I would suggest, that unless there is a strong technical 
interoperability reason that encoded-URI be respecified to say that all 
URIs MUST be percent-encoding normalised as per RFC3898 sections 2.3 
(http://tools.ietf.org/html/rfc3986#section-2.3) and 6.2.2.2 
(http://tools.ietf.org/html/rfc3986#section-6.2.2.2) before embedding 
within a duri/tdb.

suggested text
[[[
  A 'duri' URI takes the form:
    duri:<timestamp>:<normalized-URI>

  where <timestamp> is a sequence of digits representing a date and
  time (Section 2.4), and <normalized-URI> is a URI as defined
  in [RFC3986], of the form:

    scheme ":" hier-part [ "?" query ] [ "#" fragment ]

  Percent-encoding normalization of URIs MUST be performed before
  embedding (Section 2.3).
]]]

and then change 2.3 to something like:

[[[
2.3.  normalized-URI encoding

  Percent-Encoding Normalization as described in
  http://tools.ietf.org/html/rfc3986#section-2.3 MUST be applied to all
  URIs before being embedded within a 'duri' or 'tdb'. (reasons..)
]]]



    where non-terminals "date-fullyear", "date-month", "date-mday",
    "time-hour", "time-minute", "time-second", "time-secfrac" are taken
    from [RFC3339].  The goal was to minimize the amount of precision
    needed, while retaining the possibility of generating timestamps that
    are exactly compatible with [RFC3339] "date-time" non-terminal.

repetition of "The goal was to minimize" suggest [ This is to minimize ] 
instead


Will cover section 3 onwards tomorrow with fresh eyes and pass on,

Best,

Nathan

Received on Thursday, 4 November 2010 01:21:24 UTC