Next in thread → Next in month →

Re: XDI expressivity (was RE: [xdi] Re: $greater, $lesser, etc.)

From
Hiovanni Cartolomeo
Date
2008-04-08T15:29:15+00:00
ID
Thread
Re: XDI expressivity (was RE: [xdi] Re: $greater, $lesser, etc.)
Hello Drummond,

thanks so much for this very good explanation. This clarifies a lot. It
was exactly what I expected, i.e. there are two levels for XDI, one
considers pure syntax, the second interprets the semantics using a
reasoner and a dictionary (would you call this "grammar"?). I
think we should write down this explicitly in our specifications, as it's
a very important point to understand what XDI is and what it can do.
Isn't it?

Bests,

Giovanni

PS: unfortunately it seems that our mail server here at roma2 is under
attack today and we're missing several mails. Hope to not have missed
something important!

At 08.28 05/04/2008, Drummond Reed wrote:

Giovanni,

 

I apologize for not responding on this thread earlier but I have been in
a solid week of meetings in Boston as well as prepping for RSA all next
week so I am behind on my email. It will be another ten days before I’m
able to start getting caught up.

 

However since I’m on a plane back to Seattle right now, and since you’ve
asked such an _excellent_ question that raises a subject I’ve been
eager to start discussing, see my answer below your message.

 

From: Giovanni Bartolomeo
[
mailto:] 

Sent: Friday, April 04, 2008 3:39 AM

To: 

Subject: Re: [xdi] Re: $greater, $lesser, etc.

 

Dear All,

I've just elaborated a bit more on my previous comments.. BTW I didn't
receive any answer, maybe I'm missing something, but I think this is a
relevant point:

At 18.51 31/03/2008, Giovanni Bartolomeo wrote:

What it is still a bit obscure to me are the following
statements:

=giovanni/+phone+home/"+39 06 4451843"

=giovanni+phone/+home/"+39 06 4451843"

aren't they equivalent? furthermore, aren't they both asserting the 

same as giovanni+phone+home/$type$xsd$string/"+39 06
4451843"?

Giovanni

What I realized is that these three statements:

a. =giovanni+phone+home/$type$xsd$string/"+39 06 4451843"

b. =giovanni/+phone+home/"+39 06 4451843"

c. =giovanni+phone/+home/"+39 06 4451843"

are actually NOT equivalent in terms of semantics: 

a. is asserting that the type for =giovanni+phone+home is a string and
its value is "+39 06 4451843"

b. is asserting that =giovanni's phone at home is "+39 06
4451843", being =giovanni the subject

c. b. is asserting that =giovanni+phone's a property, home, which is
equals "+39 06 4451843", being =giovanni+phone the
subject

HOWEVER in order to enforce consistency, these three addresses

a. =giovanni+phone+home/$type$xsd$string/

b. =giovanni/+phone+home/

c. =giovanni+phone/+home/

should point to the SAME node in the XDI graph (or be aliases). Is
this correct? What do you think?

Giovanni

 

********** Drummond replies **********

 

I am so glad someone finally asked this question in black and white – I
have been thinking about this issue of “XDI expressivity” for months now
given the fundamental capabilities of XDI RDF. Forgive me for providing
an extended answer, but I think the question can be so revealing about
the power of XDI RDF.

 

First, to answer your question right up front, “Do those three XDI
addresses identify the same literal node?”, my answer is: “You cannot
know deterministically without reference to the XDI dictionaries used by
the statements.”

 

The reason is that the three statements represent three different paths
through the XDI RDF graph, and as you pointed out, each path represents
different semantics. So you you really have to drill all the way down
into the graphs, and the statements represented by each graph, in order
to answer your question.

 

To do this, let’s start by looking at the three graphs visually in X3
Simple (one reason I love X3 Simple is that it lets you see the visual
pattern of the graph while at the same time seeing the addresses).

 

#1

=giovanni+phone+home

         
$type$xsd$string

                     
"+39 06 4451843"

#2

=giovanni

          +phone+home

                     
"+39 06 4451843"

#3

=giovanni+phone

          +home

                     
"+39 06 4451843"

 

Now, let’s “fully explode” each of these into ALL the XDI statements they
represent.

 

#1 (5 statements)

=giovanni

          $has

                     
+phone

=giovanni+phone

          $has

                     
+home

$type

          $has

                     
$xsd

$type$xsd

          $has

                     
$string

=giovanni+phone+home

         
$type$xsd$string

                     
"+39 06 4451843"

 

#2 (3 statements)

=giovanni

          $has

          +phone+home

+phone

          $has

                     
+home

=giovanni

          +phone+home

                     
"+39 06 4451843"

 

#3 (2 statements)

=giovanni

          $has

                     
+phone

=giovanni+phone

          +home

                     
"+39 06 4451843"

 

Isn’t it fascinating that the first graph represents five statements, the
second three, and the final one only two?

 

In any case, all three options here (plus more - see below) appear to be
completely valid chains of XDI statements between the XDI subject
=giovanni and the XDI literal "+39 06 4451843". But none of
them asserts exactly the same semantics (the only way to do that would be
to use XDI synonyms, i.e., $is statements). However using an XDI reasoner
and an XDI dictionary (which itself is just a set of XDI statements
comprising definitions), you could verify that according to that
dictionary, all these statements identify the same literal node.

 

In fact the dictionary is pretty short. Here it is:

 

+phone

         
$is$a                                       
<--1-->

                     
+

                     
$type$xsd$string

         
$has                                        
<--2-->

                     
+home

         
$a$has                                     
<--3-->

                     
+home

         
$has$a                                     
<--4-->

                     
+home

         
$a$has$a                                 
<--5-->

                     
+home

+home

         
$is$a                                       
<--6-->

                     
+

         
$has                                        
<--7-->

                     
+phone

         
$a$has                                     
<--8-->

                     
+phone

         
$has$a                                     
<--9-->

                     
+phone

         
$a$has$a                                 
<--10-->

                     
+phone

$type

          $has

                     
$xsd

$type$xsd

          $has

                     
$string

 

As short as it is, the semantics represented by those statements – while
crystal clear from a pure XDI semantics point-of-view – represent a
surprising range of grammatical relationships a human POV. Roughly
translated to English, the first ten statements say:

 

1) A phone is both a subject (noun) and a label for a type of data
(typically called a “phone number”, but often abbreviated in English as
just “phone”).

 

2) A phone can have a home, i.e., as a noun, it can have a possessive
relationship with another noun, home.

 

3) A phone is something a home can have (possessive relationship).

 

4) A phone has an attribute of home.

 

5) Phone is an attribute of a home.

 

6) Home is a subject.

 

7) A home can have a phone (possessive relationship – inverse of
#3).

 

8) A home is something a phone can have (possessive relationship –
inverse of #2).

 

9) A home has an attribute of phone (inverse of #5).

 

10) Home is an attribute of a phone (inverse of #4).

 

Armed with that dictionary, an XDI reasoner can quickly prove that all
the following XDI statements identify the same literal:

 

=giovanni+phone+home/$type$xsd$string/

=giovanni+home+phone/$type$xsd$string/

=giovanni/+home+phone/

=giovanni/+phone+home/

=giovanni+phone/+home/

=giovanni+home/+phone/

 

However, if you remove any of those XDI dictionary statements, some of
the above are no longer provably true. For example, if you remove the
statements:

 

+phone

          $has

                     
$home

+home

          $a$has

                     
+phone

 

Then you could no longer prove that the following two statements identify
the same XDI object as the rest:

 

=giovanni+phone+home/$type$xsd$string/

=giovanni/+phone+home/

 

They MIGHT identify the same literal as the rest, but now you have
nothing you can prove that with.

 

There’s much more I’d like to say about this simple dictionary, but I’m
out of time. However I encourage everyone who is interested to study it
closely. To test your knowledge, here’s a quiz question:

 

          “Given the
dictionary above, how can you prove that it is valid for the XDI object
of all six statements to be a literal string?”

=Drummond
Next in thread → Next in month →