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

*Subject*: **Re: [xdi] Proposal to kill two birds with one stone with $same**

*From*:**Drummond Reed <drummond.reed@xdi.org>***To*: Giovanni Bartolomeo <giovanni.bartolomeo@uniroma2.it>*Date*: Wed, 6 Jul 2011 23:56:58 -0700

Giovanni, my apologies, the XRI TC spent several years developing canonical resolution for XRIs so I am so used to the term that I forgot that not all XDI TC members are as familiar with it.

The idea of a canonical identifier is a solution to a common problem: if you have a set of 2-or-more XRI synonyms for a resource, how do you know which one you can use to identify that resource to another party who may or may not have access to the same set of synonyms?

The XRI TC solved this problem by providing semantics in XRDS documents (now XRD documents) for specifying which XRI in the set of synonyms was the canonical XRI. Then comparisions were always based on the canonical XRI.

This is exactly the architecture proposed in slide #3 of the latest XDI Graph Patterns document. The $is relational arc is used to express the relationship between any non-canonical XRI for an XDI context node and the canonical XRI for the context node (the $is arc always points from the non-canonical to the canonical XRI).

This is of course different than owl:sameAs semantics, which does not have any notion of canonical vs. non-canonical. That's why I'm proposing to use $same to express owl:sameAs equivalence relationships in XDI graphs and $is to express canonical equivalence relationships in XDI graphs.

We can discuss further on tomorrow's call.

=Drummond

On Wed, Jul 6, 2011 at 1:28 AM, Giovanni Bartolomeo <giovanni.bartolomeo@uniroma2.it> wrote:

Hello Drummond,

all your argumentations seem to be based one central notion: "canonical XRI".

Could you clarify in more details what a canonical XRI is? (sorry, maybe I'm the only one to require this clarification, however want to be sure that my understanding is correct...)

Thanks,

Giovanni

Def. Quota Drummond Reed <drummond.reed@xdi.org>:

XDI TC Members:object -- a directed multigraph <http://en.wikipedia.org/wiki/

Having had the long weekend (in the U.S.) to think about it, plus Giovanni's

email yesterday, I had an insight about defining a predicate for

equivalence/synonymity that has owl:sameAs semantics. This could kill two

current birds with one stone. Here's a summary of my thinking:

1) WHY WE SHOULD AVOID MULTIGRAPHS

First, with regards to the option we discussed last Thursday of the XDI

graph supporting multiple XRI arcs between the same XDI subject and XDIMultigraph>.graphs<http://en.wikipedia.

As I've pointed out before, this creates problems determining the canonical

XRI for identifying an XDI context node. But over the weekend I realized

there's a second reason to avoid multigraphs: RDF graphs are not multigraphs

either. In RDF, you must use an owl:sameAs statement to create an

equivalence statement between two distinct RDF graph nodes. The owl:sameAs

statement is a way to assert that the two nodes represent the same logical

subject, but the two nodes still remain distinct and separate nodes in the

RDF graph. Thus RDF graphs and XDI graphs currently share the same quality:

every graph node has exactly one arc (one URI) that identifies it.

With XDI graphs this has the further advantage that *every arc in an XDI

graph corresponds to exactly one XDI statement and vice versa*. This is not

only conceptually very clean and easy to understand and teach, but it is a

very computation-friendly rule.

So I would submit that XDI graphs should to follow the same underlying

architecture as RDF graphs, i.e., be simple directedorg/wiki/Graph_%28mathematics%29#Simple_graph>and1. By itself, for canonical equivalence (as illustrated in slide #3 of

not multigraphs.

2) USE $SAME FOR OWL:SAMEAS SEMANTICS

My second realization was that if we want to be able to express the

owl:sameAs semantics for equivalence, which only expresses general

equivalence and does not include the notion of canonical equivalence, then

we should assign an XRI to have the same semantics as owl:sameAs. To keep it

simple, I propose that we use $same.

As a relational arc, a $same assertion of equivalence would NOT be

canonical, i.e., any two XDI subjects could have a $same relational arc that

asserts that they are equivalent, and this arc could go in either or both

directions between them, i.e., $same would be its own inverse (like $is, see

below). So we would say:

=!1111/$same/=example.name1

=!1111/$same/=example.name2

=example.name1/$same/=!1111

=example.name2/$same/=!1111

3) KEEP $IS FOR BOTH CANONICAL EQUIVALENCE AND ALGORITHMIC INVERSION

Lastly, because $same solves the RDF-equivalence semantics issue, I

recommend keeping $is for exactly what we are using it for right now, i.e.:

PDF<http://www.oasis-open.org/

the latest XDI Graph Patternscommittees/download.php/42654/xdi-graph-patterns-2011-06-23.pdf>

).

2. As a prefix, for algorithmic inversion for any other XDI predicatePatterns PDF<http://www.oasis-open.org/

(example: $is$do as shown in slide 9 of the latest XDI Graphcommittees/download.php/42654/xdi-graph-patterns-2011-06-23.pdf>1. Since we have a separate $word for owl:sameAs equivalence, $same,

).

There are three reasons for this recommendation:

2. The reason for using it for both canonical equivalence and algorithmic

there is no longer a conflict with using $is for canonical equivalence or

algorithmic inversion or both. The latter are both XDI-only concepts, so it

makes sense to use an XDI-defined predicate for them.self-referential arc (a loop <http://en.wikipedia.org/wiki/

inversion lies in the underlying metagraph model. In short, $is represents aGraph_loop>).3. $is for inversion reads very well in English. We have seen numerous

Since you can't actually express a loop in a simple directed graph, you use

the $is metagraph statement to do it -- that's how we express canonical

equivalence. When you then put any other XDI graph statement in the context

of a parent self-referential arc (loop), you are "turning it back upon

itself", i.e., expressing the inverse.

examples over the past several years. One of the most frequent is using

$is$a to express supertype, which is the inverse of $a to express subtype.

Or in the current link contract proposal, using $is$do to express the

inverse of $do. But it also works works with virtually any English word. For

example, =abraham/+son/=cain has the inverse =cain/$is+son/=abraham.

=Drummond

----------------------------------------------------------------

Invito da parte dell'Ateneo:

Il tuo futuro e quello della Ricerca Scientifica hanno bisogno del

tuo aiuto. Dona il 5 x mille all'Universita' di Roma Tor Vergata

codice fiscale: 80213750583 http://5x1000.uniroma2.it

**Follow-Ups**:**Updated Link Contract Proposal***From:*Michael Schwartz <mike@gluu.org>

**References**:**Proposal to kill two birds with one stone with $same***From:*Drummond Reed <drummond.reed@xdi.org>

**Re: [xdi] Proposal to kill two birds with one stone with $same***From:*Giovanni Bartolomeo <giovanni.bartolomeo@uniroma2.it>

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