Next in thread → Next in month →

RE: [xdi] Groups - Comments about XDI versioning (Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded

From
Hiovanni Cartolomeo
Date
2008-02-26T16:15:12+00:00
ID
Thread
RE: [xdi] Groups - Comments about XDI versioning (Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded
Hello,

sorry I've been out for a while. Trying to summarize my understanding of
this interesting discussion..

> It would be great if somehow the
same mechanism could be used for "I have 5 versions" and
"I have 5 e-mail addresses".

I agree with this point, we should address both use cases in a
similar fashion.

>As you can see there are
the following two statements:

>=drummond/$has/$v   (this says that =drummond is
versioned)

>=drummond/$v/!5   (this says the current version is 5)

>I'd like to understand how you would do it instead.

>Would you say this?

>=drummond/$has$num$5/$v

>Or this?

>=drummond/$has$5/$v

My proposal is that $has could be used to specify cardinality, so
I would do like this:

=drummond/$has$5/$v

(applied to versioning as well as other composition/aggregation
relationships -btw here I think we've to discuss an issue: do we want to
model cardinality for composition and aggragation as well, e.g. $has$2
-> composition and $has$a$2 -> aggregation, sounds a bit
ugly!)

>=drummond/$has/$v   (this says that =drummond is
versioned)

>=drummond/$v/5   (this says the current version is 5)

>(=drummond/$v/5)/$is/!4

My idea is close to this one, except for the fact that I would use
$5 instead of 5 (is 5 a literal ("5")? in this case it should
be intended as parsed to an integer number, e.g. it would be an error a
statement like =drummond/$v/"5hg2" because "5hg2"
could not be parsed to an integer). Apart from this point, if I've
understood this correct, what I like most is that this way we decouple
document version (an index) from the place the document is stored;
example in java

Version vArr=Version[10];

System.out.println("v[2] memory address: 
"+vArr[2]);

v[2] memory address:  test.Person@4g7a2

here, @4g7a2 is a memory address similar to !4, whereas v[2] is an
element indexed by an integer number, like =drummond/$v/$5. This is one
of the reasons I would not use !5 and I prefer $5 instead.

BTW here it is not clear to me whether I've to use =drummond/$v/$5 or
=drummond$v$5, so far I've understood that the first one asserts that the
current version is version five, the second returns an xdi document
corresponding to that version, right?

>- I don't understand why I
would use the comparison operators like $greater in versioning..

I think this could be useful in a query, like the
following:

=Drummond$v/$greater/$4 

could return a composite document containing a list of =Drummond versions
starting from version five. 

What do you think?

Bests,

Giovanni

At 01.15 23/02/2008, Steven Churchill wrote:

 

Bill,

 

I gave my comment because there was a statement that the identifier
=markus$v!1 would be inappropriate to
identify an element in a “mutable” collection.

 

My point is that the notion of non-reassignability (persistence) here
only applies to the last two subsegments – in this case that “$v“
namespace would not likely reassign the identifier “!1“ to something like
“the concept of the real number pi”. Since the notion of persistence in
“$v!1“ only applies to a convention
in namespace “$v“ for it’s local child identifier “!1“, then the notion
of persistence in “$v!1“ has no
relevance as to whether =markus$v!1
is assigned to items in “mutable” or
“non-mutable” collections. There is just no relationship between these
concepts.

 

~ Steve

 

 

From: Barnhill, William [USA]
[
mailto:] 

Sent: Friday, February 22, 2008 1:32 PM

To: Steven Churchill; Markus Sabadello

Cc: ; 

Subject: RE: [xdi] Groups - Comments about XDI versioning
(Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded

 

 

Steve,

 

I apologize but do not have your
background in graph theory. How does " 

 

In summary, the convention that “$” is not going to reassign the local
identifier “1” to “the concept of the real number pi” has nothing to do
with assigning markus assigning the identifier =markus$v!1 to a mutable
collection.

 

" apply?

 

I think you're suggesting our
examples should be in the vein of
=markus$v$1,
 is that correct?

 

Bill

 

 

From: Steven Churchill
[
mailto:] 

Sent: Friday, February 22, 2008 4:05 PM

To: 'Markus Sabadello'; Barnhill, William [USA]

Cc: ; 

Subject: RE: [xdi] Groups - Comments about XDI versioning
(Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded

Reassignability is a convention that
applies only at the XRI namespace level.

 

For example, an XRI namespace registry might do this:

Mint a new XRI authority (record) for a paying customer. 

Assign it a local (bang) inumber to be
returned as the final subsegment of it’s CID. 
 

If the given XRI namespace registry is well-behaved, then it will follow
the convention that it will not re-use the authority with the local
inumber for another customer. (It won’t re-assign it to another
customer.)

 

So, in this case, this notion of “not re-assigning” is a convention to be
followed by well-behaved XRI namespace registries.

 

--- 

So what about the name space “$” and the child “1”. It would probably be
a good convention that if “$” assigned the child authority named “1” to
the concept of the integer value 1 then it shouldn’t at some later
date assign  the local identifier to some other concept (like the
real number pi, for example.)

 

---

 

In summary, the convention that “$” is not going to reassign the local
identifier “1” to “the concept of the real number pi” has nothing to do
with assigning markus assigning the identifier =markus$v!1 to a mutable
collection.

 

~ Steve

 

 

 

From: 
[
mailto:] On Behalf Of Markus
Sabadello

Sent: Friday, February 22, 2008 8:11 AM

To: Barnhill, William [USA]

Cc: ; 

Subject: Re: [xdi] Groups - Comments about XDI versioning
(Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded

 

Hmm yes right, ! is persistent, so it doesn't work for mutable
collections, I didn't think about that. If I have 5 e-mail addresses, one
of them may get deleted. But in versioning persistence is what you want
(version 2 will never change or go away..). So maybe the solution is to
support both ! and *.

Versioning example (persistent):

=markus/$has!5/$v   <-- in the metagraph model, $has is for
composite subjects, right? -->

=markus$v!1

  ...

=markus$v!2

  ..

=markus$v!3

  ..

Multiple e-mails example (reassignable):

=markus/$has$a*5/+email  <-- in the metagraph model, $has$a is
for predicates, right? -->

    +email*1

        ..

    +email*2

        ..

    +email*3

        ..

Anyway, just a thought. It would be great if somehow the same mechanism
could be used for "I have 5 versions" and "I have 5 e-mail
addresses".

How would the +yesterday construct work? Would the endpoint look at
timestamps on the individual version snapshots and find out which one to
return?

Markus

On Fri, Feb 22, 2008 at 10:04 AM, Barnhill, William [USA]
<
> wrote:

 

Hi guys,

You both have some very good and interesting points. Just saw this though
and wanted to send off a thought: while ! syntax is easier to understand
and read imho, it also might lead to a problem. If you are using it to
things in a modifiable collection your collection order could change, or
you could insert someplace other than the tail of the collection. This
would mean you would need to reassign your ! identifiers, but are they
reassignable? $n would get around that and lower the verbosity closer to
! level.

For versioning, I like best the following:

=drummond/$has/$v   (this says that =drummond is
versioned)

=drummond/$v/5   (this says the current version is 5)

(=drummond/$v/5)/$is/!4

I think $v should by default be a # in the dictionary. If you want to
access yesterday's last version you can do

=drummond/$v+yesterday

which accesses statements of the form

=drummond/$v+yesterday/5

(=drummond/$v/5)/$is/!4

What do you think?,

Bill

-----Original Message-----

From:

 on behalf of Markus Sabadello

Sent: Thu 2/21/2008 10:45 PM

To:



Cc:


Subject: Re: [xdi] Groups - Comments about XDI versioning
(Draft-Contrib-OASIS-XDI-versioning.pdf) uploaded

Heya Giovanni,

Since I already tried to implement the versioning described in the XDI
RDF Model v8 doc, it's interesting for me to read your comments about
this..

- Regarding the use of $num instead of ! to index things, I think it's
mostly a matter of taste. Both would work fine I think. One thought I am
having is that subsegments like !1, !2, !3 do exist in XRI resolution
too. I.e. there are some authority resolution servers that use these
number-like subsegments (and not ip address-like subsegments like
!203.173.1276.1663)..

- Regarding the number of versions, can I ask you something?

Maybe you can take a quick look at this URL:

http://graceland.parityinc.net/xdi-endpoint/hibernate-graph-ver/=drummond

As you can see there are the following two statements:

=drummond/$has/$v   (this says that =drummond is
versioned)

=drummond/$v/!5   (this says the current version is 5)

I'd like to understand how you would do it instead.

Would you say this?

=drummond/$has$num$5/$v

Or this?

=drummond/$has$5/$v

Just trying to understand it correctly.. I like the idea very much, it
makes versioning a bit simpler and more consistent with other
constructs..

Note to Drummond: We were talking about how to express multiple values of
an attribute (e.g. =markus has multiple +email addresses). After reading
Giovanni's comments, it appears to me that versioning may just be another
instance of that same problem. I.e. there's no difference between saying
=markus has 5 +email addresses, and saying that =drummond has 5 $v
ersions. I agree with Giovanni that the same construct should be used in
both cases.

- I don't understand why I would use the comparison operators like
$greater in versioning.. What would be a practical use case for this? But
in general I think these operators can be very useful..

Markus

On 14 Feb 2008 13:53:29 -0000,
<
> wrote:

The document named Comments about  XDI versioning

(Draft-Contrib-OASIS-XDI-versioning.pdf) has been submitted by
Giovanni

Bartolomeo to the OASIS XRI Data Interchange (XDI) TC document
repository.

Document Description:

A first draft of comments on XDI versioning syntax

View Document Details:

http://www.oasis-open.org/apps/org/workgroup/xdi/document.php?document_id=27179

Download Document:

http://www.oasis-open.org/apps/org/workgroup/xdi/download.php/27179/Draft-Contrib-OASIS-XDI-versioning.pdf

PLEASE NOTE:  If the above links do not work for you, your email
application

may be breaking the link into two pieces.  You may be able to copy
and paste

the entire link address into the address field of your web
browser.

-OASIS Open Administration

 

Internal Virus Database is out-of-date.

Checked by AVG Free Edition. 

Version: 7.5.516 / Virus Database: 269.20.7/1286 - Release Date:
18/02/2008 18.49
Next in thread → Next in month →