OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xdi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [xdi] RE: [External] [xdi] Re: Update on $is and $is!


I need to clarify some of the terminology being used.  By your description Drummond it is not symmetric.

Symmetric: a binary relation R over a set X is symmetric if it holds for all a and b in X that if a is related to b then b is related to a

Drummond, you said that "$is statements are "symmetric but directional". So =a/$is/=b does NOT imply that =b/$is/=a" - the last part is specifically saying $is is antisymmetric.  The meaning of 'directional' in the context of relations is undefined, but I'm going to assume you mean that $is is a function.

Curiously, you could think of $is as an ordering of aliased contexts by follow order, i.e., $(A)/$is/$(B) and $(B)/$is/$(C) means that $is is an ordering of the linked contexts (a subset of the contexts in the graph) like so $(A)->$(B)->$(C).

Given that, and based on the thread so far, it seems to me that $is is an injective function that is also a partial order, where two contexts (elements) of the graph (of the set) are comparable if and only if traversal must follow from one of the contexts to the other.

I think part of my confusion,at least, is that the semantics of 'is' in the English language are ambiguous, e.g., If Bob is Ted then Ted is Bob, but Bob is Republican does not imply Republican is Bob.  Part of the problem lies in the implicit 'a ', i.e. Bob is a Republican does imply that a Republican is Bob (though it reads weird).  In some cases there is also an implicit 'Thing', 'Red' in Bob is Red goes to Bob is a Red thing.  The semantics of $is seem more appropriate to a word with a more antisymmetric slant, like links or in. $in has set semantics, which is I believe the rational behind it not being adopted when I proposed it as a replacement for $is a while ago. I still think it's better to think in terms of set semantics rather than pseudo-equivalence, but with $in out, how about changing $is to $links?

As for $is$is, my issues with that are:
.. Reads awkwardly
.. Unclear from reading it what it means
.. $is has two completely different meanings in the same segment, let alone in the same graph

I've proposed alternatives to $is for inverse several times before, notably $inv, and still advocate not using $is for this purpose.  There are benefits to $is as the inverse, and I understand that, but the disadvantages far outweigh the benefits in my mind.  As a result here is a new idea, somewhat radical: a new symbol in XDI for inverse: ', e.g., $is' is the inverse of $is.  This also has the benefit of being the mathematical symbol sometimes used for inverse instead of a superscript -1.  Also, RFC 1738 suggests that an apostrophe does not need to be URL encoded. What do you think? If there is some interest from the TC I will write it up as a proposal and put it on the wiki.

Definitions:

partial order is a binary relation "≤" over a set P which is reflexiveantisymmetric, and transitive, i.e., for all ab, and c in P, we have that:

  • a ≤ a (reflexivity);
  • if a ≤ b and b ≤ a then a = b (antisymmetry);
  • if a ≤ b and b ≤ c then a ≤ c (transitivity).

Injective: A function is called injective (or one-to-one, or an injection) if f(a) ≠ f(b) for any two different elements a and b of the domain

Function: relation between a set of inputs and a set of permissible outputs with the property that each input is related to exactly one output

Definitions are from wikipedia.org, with gratitude.

Kind regards,
 
Bill Barnhill
Booz Allen Hamilton - Belcamp,MD
Cell: 1-443-924-0824
Desk: 1-443-861-9102

From: drummond@respectnetwork.net [drummond@respectnetwork.net] on behalf of Drummond Reed [drummond@connect.me]
Sent: Wednesday, November 21, 2012 12:45 AM
To: Barnhill, William [USA]
Cc: Markus Sabadello; OASIS - XDI TC
Subject: Re: [xdi] RE: [External] [xdi] Re: Update on $is and $is!

I'm not sure if I can follow all of this thread because it's getting very deep. But let me just clarify one thing: $is statements are "symmetric but directional". So =a/$is/=b does NOT imply that =b/$is/=a. Rather there is a specific inverse of $is, which is $is$is. So =a/$is/$b (one direction) implies =b/$is$is/=a (other direction). The first direction is canonical (a context may have zero or one $is statement) but the inverse is not canonical (a context node may have zero to n $is$is statements).

Hope this helps,

=Drummond 


On Tue, Nov 20, 2012 at 3:44 PM, Barnhill, William [USA] <barnhill_william@bah.com> wrote:
Thanks for the response Markus, comments inline.

From: xdi@lists.oasis-open.org [xdi@lists.oasis-open.org] on behalf of Markus Sabadello [markus.sabadello@xdi.org]
Sent: Tuesday, November 20, 2012 5:19 PM
To: Barnhill, William [USA]
Cc: Drummond Reed; OASIS - XDI TC
Subject: Re: [xdi] RE: [External] [xdi] Re: Update on $is and $is!

Hi Bill,

On Tue, Nov 20, 2012 at 10:49 PM, Barnhill, William [USA] <barnhill_william@bah.com> wrote:

Markus, I looked at it and agree that it looks good based on the premises the TC accepted.  Though  I still think this approach is too complex, it seems to be the approach that has majority consensus within the TC .  I believe that majority has been you, Drummond, Phil, and Joseph - with Giovanni and Les being mostly silent on this matter, and myself opposed. 


Today we discussed one simplification, which is to have the ! syntax only on the $get operation (i.e. $get!), but not on the others (i.e. there is no $add!, $mod! and $del!).
I realize this probably doesn't affect your general concerns about this proposal, but still it might be worth mentioning.
 
*wab: Discussed on what? Wouldn't be the XDI TC call, is this the XDI2 implementers call?

One thing to possibly consider more is on #4:

4. If a context node has an equivalence link, is MUST be the only statement on that node.

Is an equivalence link relation intended to be symmetric?  I am not sure it can be, given the ‘follow’ rules.


I would say it's symmetric in the sense that both nodes identify the same logical entity.
If A is the same as B, then B is the same as A, that's a fundamental logic principle, i.e. symmetry.

But no it's not symmetric when it comes to the following while applying XDI operations, i.e. just because A is followed to B doesn't mean B is followed to A.
If you had both A/$is/B and B/$is/A, you're creating an infinite loop.
We should probably specify how the server should behave in this case.
I don't think I'm covering that case adequately in my implementation right now, oops.

*wab: This is an indication to me that we do not fully understand the semantics of $is and I think we need to nail that down completely and unambiguously (including not having it behave differently depending on the reason for traversing the $is link: for id vs. for follow)

If it is, then I don’t see #4 working because $(A)/$is/!1234 will imply !1234/$is/$(A), and !1234 may be the subject of more than one statement.


See above, the first statement doesn't imply the second, but if you explicitly had them both, I'm not sure what would happen.
$is doesn't only state equality, but also that the target is the canonical identifier.

*wab: See comment at bottom, where this is restated

*wab: Also, when was $is as stating the target is the canonical identifier proposed?  This, combined with it being symmetric in some situations but not symmetric in others, sounds like an overly-overloaded predicate.

I just realized this isn't explained in the proposal, so I added this sentence:

"The identifier of the object node MUST be interpreted to be the canonical identifier of the logical entity."

*wab: The canonical identifier must be an i-number, correct? Then you have ruled out a $is relation between two i-names and essentially made $is the $id predicate I proposed last week.  This seems good evidence for use of $is and $id instead of just $is, or just $is and $is! (2nd still does not appeal to me).

Therefore, I'd say a $is loop is invalid, because you can only have one canonical identifier for a logical entity.

*wab: Why? Why can't a logical entity have one canonical identifier per link contract
  

I think it is important that whenever we define our binary relations/predicates we explicitly say which of the following they are: symmetric, asymmetric (differs from non-symmetric), transitive, reflexive, irreflexive (differs from not necessarily reflexive), functional, inverse functional.


Makes sense, but I think for each of those, we should distinguish between logical equality, and the following while applying XDI operations.

*wab: A relation is symmetric, transitive, etc. or it is not.  For me, to say that it is symmetric when your using it this way but not symmetric when you're using it that way invites confusion on the part of implementers, and implementation bugs, as well as making a nightmare for the creation of a conformance test kit.

I'd say:

$is logical equality: reflexive, symmetric, transitive
$is following when applying XDI operations: irreflexive, asymmetric, not transitive, functional

*wab: see previous comment.

 

Kind regards,

 

Bill Barnhill

Booz Allen Hamilton - Belcamp,MD

barnhill_william@bah.com

Cell: 1-443-924-0824

Desk: 1-443-861-9102

 

From: xdi@lists.oasis-open.org [mailto:xdi@lists.oasis-open.org] On Behalf Of Drummond Reed
Sent: Tuesday, November 20, 2012 1:30 AM
To: xdi2@googlegroups.com
Cc: OASIS - XDI TC
Subject: [External] [xdi] Re: Update on $is and $is!

 

Markus, I just reviewed the updated https://wiki.oasis-open.org/xdi/EquivalenceLinks page, and it looks really good.

 

My only question is about the final example in https://wiki.oasis-open.org/xdi/EquivalenceLinks#Examples-1

 

In this example, the operation is a $mod, and the standard graph response is:

 
=abc/$is/=!1111

My question is, why is the response to a $mod operation an equivalence link? Why isn't it just something indicating success?

 

Thanks,

 

=Drummond  

 

 

On Mon, Nov 19, 2012 at 2:51 PM, Markus Sabadello <markus.sabadello@gmail.com> wrote:

Per my action item from the last XDI TC call, I worked a bit on this page:

 

- I added information and examples for $add, $mod and $del operations

- I also changed some of the wording in the other sections of the page, just to clarify things

 

I updated the following pages to reference the EquivalenceLinks one:

 

In the next few days, I'll work on the GetOperation page (the only one of the operations that's still missing).

 

I also updated the implementation:

 

You can try the samples 8, 9 and 10 to see some of the equivalence links functionality in action.

 

Looking forward to discuss.

 

Markus

--
Project Danube: http://projectdanube.org
Personal Data Ecosystem Consortium: http://personaldataecosystem.org/

--
You received this message because you are subscribed to the Google Groups "XDI2" group.
To post to this group, send email to xdi2@googlegroups.com.
To unsubscribe from this group, send email to xdi2+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

 








[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]