On Wed, Mar 31, 2004 at 04:41:15PM +0200, Jose Kahan wrote:
>
> Eric,
>
> Thanks for giving a more concrete example. There's only a glitch
> that I think made you miss the point of my proposal.
>
> The main point of using <b:base> (as you defined it) and
> owl:sameAs is to keep track of the current and previous
> location of statements. The problem we want to solve is
> to be able to make a statement about another statement that is
> inside a file that can be moved. Relative URLs are not good for
> doing this.
>
> The URN are a good solution to it, but I don't know how good
> we will be in generating unique and distinct URNs in a non-controlled
> environment (the whole world).
>
> The solution I propose allows to have the same benefits as the
> unique URN but it avoids collisions, The price to pay, however, is that
> applications need to do much more processing.
>
> What is easier to have, a fail-safe mechanism to produce URNs or
> some well specified processing? If it's the former, then let's go
> forward with URNs (and send a follow-up message on how to do it :).
> Maybe you'd like to adopt the same mechanism used to generate msgids
> by some mail client?
If we go with (temporary) UUIDs, yes, I think re-using something like
message ids would offer the maximum use of existing and testing tools.
I guess msgids are the most prolific of the globally "unique" UUIDs
currently being generated.
> I'm basically proposing that the applications do the same job
> that the server does when you publish something and it attributes
> a new URL.
>
> See below for additional comments.
ditto
> On Wed, Mar 31, 2004 at 09:07:20AM -0500, Eric Prud'hommeaux wrote:
>
> [snip]
> >
> > > 5. When an RDF server sends back a set of bookmarks, it can include
> > > the Bookmark#Base property so that the application knows that they
> > > have the same base. This will make the way the file is stored
> > > (as a single file or inside a database) transparent to the
> > > application.
> >
> [snip]
> >
> > I haven't included the owl:sameAs assertion because it described the
> > relationship between a universally identified resource
> > http://laptop.example.com/usr/local/bookmarks/current.rdf
> > and a local resource that was created when there was no net access
> > file://localhost/home/jose/bookmarks.rdf
>
> We don't need the owl:sameAs here unless this was a statement that
> had a previous location.
>
> > I think this is an interesting technique, and I'm glad to have worked
> > through the details of it, but I think we still need the URN approach
> > to deal with the scenario of documents that are shared before they get
> > a universal name. For instances, a user could queue mail containing a
> > local form (not yet named with a non-local name) while still on the
> > plane [1].
>
> With my proposal, you can share the documents too without needing
> to have a universal name. The universal name is made of the location of
> the file and the previous location is kept using owl:sameAs. This way
> statements made about something that moved can still be tracked to the
> new ones. It's just much more hazzle than URNs.
Following that through a bit: you share your bookmark with someone
else before nailing it down with a universal name. Supposed you
generate a bookmark, with xml:base and b:base of
file:///C:|/Windows/bookmarks.rdf . You mail the file to me (or at
least queue it) before you get a chance to post the bookmark to a
bookmark server. There may already be a file on my machine called
file:///C:|/Windows/bookmarks.rdf but my mail client is likely to warn
me before I overwrite it by saving the mailed bookmarks file in that
location. Prompted by the mail client, I save it to
<current directory>/bookmarks2.rdf
Now when I read that file from a bookmark-protocol-aware agent, it
changes the names of all the nodes in the graph that are fragments
based on file:///C:|/Windows/bookmarks.rdf .
This counts on the graph merging happening only with bookmark agents.
Any other tool would see the node called
file:///C:|/Windows/bookmarks.rdf#bm1
in a document called file:///C:|/Windows/bookmarks2.rdf and merge it
with the file:///C:|/Windows/bookmarks.rdf#bm1 from bookmarks.rdf .
Another requirement is that the server should not ever know about the
owl:sameAsr it will try to merge all of the things that it ever
learned had been called file:///C:|/Windows/bookmarks.rdf#bm1 at some
point in their history. For an example of this failure, suppose Jose
Kahan of Brittany creates
file:///C:|/Windows/bookmarks.rdf#bm1
and posts it to server1. server1 then says,
file:///C:|/Windows/bookmarks.rdf#bm1 owl:sameAs ...bm12321 .
Someplace out there on the net, someone else happens on the name bm1
and they post their notion of file:///C:|/Windows/bookmarks.rdf#bm1 .
The server is faced with trying to guess if this bm1 is the same one
that it heard about before. If it is, it should probably rename it to
the other name it already gave for bm1. Otherwise, it should give it a
new name, say ...bm13891, but not mention any owl:sameAs relationship
between the newly invneted name and
file:///C:|/Windows/bookmarks.rdf#bm1 .
For similar reasons, the client should never let *anybody* know that
bm1 owl:sameAs ...bm12321 as they will arrive at the same mistaken
conclusion that the bm1 and bm1 and ...bm12321 and ...bm13891 are all
the same node.
How coherent was that?
> > Perhaps this approach addresses the mailed-local scenario in a way I
> > haven't spotted.
>
> Hope this makes it clearer.
>
> -jose
--
-eric
office: +81.466.49.1170 W3C, Keio Research Institute at SFC,
Shonan Fujisawa Campus, Keio University,
5322 Endo, Fujisawa, Kanagawa 252-8520
JAPAN
+1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell: +1.857.222.5741 (does not work in Asia)
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.