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

# xdi message

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

Subject: Re: [xdi] Associativity of XDI \$has statements

• From: "Giovanni Bartolomeo" <giovanni.bartolomeo@uniroma2.it>
• To: "Drummond Reed" <drummond.reed@xdi.org>
• Date: Tue, 17 Nov 2009 20:35:47 +0100

```Dear Drummond,

sorry but I believe instead that we should take care of the placement
of the \$has operation between multiple XRI subsegments that have been
associated. To see why, focus on the following English statement:

house door keyhole

1) house door has keyhole: you are asserting that a specialized DOOR
(house door), has a KEYHOLE
2) house has door keyhole: you are asserting that HOUSE has a
specialized KEYHOLE (door keyhole)

Which one does it make sense? To me only 1).

Consider now: contract markus' signature

1) contract Markus has signature: you are asserting that a "specific"
MARKUS (contract Markus) has a signature
2) contract has Markus' signature: you are asserting that CONTRACT has
a specific SIGNATURE (Markus' signature)

only 2) seems to make sense to me.

A formal proof follows below.

Kind Regards,
Giovanni

==============

Formal Proof - at the end of last Spring we agreed on these points:

> #1:        +x/\$has/+y        INFERS:
>
>
>            +y/\$is\$has/+x
>            +x+y/\$is\$a/+y
>            +y/\$a/+x+y
>            +x+y
>            +x/+y
>
> #1A:     +x+y                 INFERS
>
>
>            +x/\$has/+y
>            +y/\$is\$has/+x
>            +x+y/\$is\$a/+y
>            +y/\$a/+x+y
>            +x/+y

therefore, supposing \$has is a left associative operator, +a+b+c reads as :

+a/\$has/+b
+a+b/\$is\$a\$/+b
+a+b/\$has/+c

i.e. node +a+b, which is a "specialized" +b, has an outgoing arc +c

When instead you have +a(+b+c) you read:

+b/\$has/+c
+b+c/\$is\$a/+c
+a/\$has/+b+c

i.e. node +a has an outgoing arc, +b+c, which is a "specialized" +c

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

> After our discussion on last Thursday’s telecon I wanted to post a note
> about the \$has predicate and the XDI expressions it produces.
>
>
>
> The rule we established last spring that is that any XDI \$has statement can
> be simplified into two other XDI statements:
>
>
>
> 1) A single XRI cross-reference (an XRI in parentheses) containing exactly
> two XRI segments—the first being the subject of the original \$has statement
> and the second segment being the object of the original \$has statement.
>
>
>
>             +a/\$has/+b  <==>  (+a/+b)
>
>
>
> 2) A single XRI segment by directly concatenating the subject of the
> original \$has statement and the object of the original \$has statement.
>
>
>
>             +a/\$has/+b  <==>  +a+b
>
>
>
> All three express the same underlying semantics, i.e.:
>
>
>
>             +a/\$has/+b  <==>  (+a/+b)  <==> +a+b
>
>
>
> This example is straightforward because the XDI statement +a+b represents
> only one \$has statement and therefore has only one expansion. XDI statements
> consisting of more than two XRI subsegments represent multiple \$has
> statements and so the number of expansions increases. Let’s take the
> example:
>
>
>
>             +a+b+c+d
>
>
>
> My understanding is the semantics we want for \$has statements is
> associativity (http://en.wikipedia.org/wiki/Associativity). By that I mean
> that sequence matters, but not the placement of the \$has operation between
> multiple XRI subsegments that have been associated with \$has statements. If
> so, this means our example +a+b+c+d expands into all of the following XDI
> statements:
>
>
>
>             +a+b+c/\$has/+d  <==>  (+a+b+c/+d)  <==>  +a+b+c+d
>
>             +a+b/\$has/+c+d  <==>  (+a+b/+c+d)  <==>  +a+b+c+d
>
>             +a/\$has/+b+c+d  <==>  (+a/+b+c+d)  <==>  +a+b+c+d
>
>
>
> Note that this rule does NOT constrain the use of cross-references to
> perform explicit grouping (reification) of XDI statements. For example:
>
>
>
>             +a+b(+c+d)
>
>
>
> …is different from +a+b+c+d because +a+b(+c+d) is a three-subsegment XRI
> that has two expansions outside the cross-reference…
>
>
>
>             +a/\$has/+b(+c+d)  <==>  (+a/+b(+c+d))  <==>  +a+b(+c+d)
>
>             +a+b/\$has/(+c+d)  <==>  (+a+b/(+c+d))  <==>  +a+b(+c+d)
>
>
>
> …and two variants on these if you also expand inside the cross-reference:
>
>
>
>             +a/\$has/+b(+c/\$has/+d)  <==>  (+a/+b((+c/+d)))  <==>  +a+b(+c+d)
>
>             +a+b/\$has/(+c/\$has/+d)  <==>  (+a+b/((+c/+d)))  <==>  +a+b(+c+d)
>
>
>
> Again, my interpretation is that this is exactly what we want—the same
> associativity between \$has statements that we have with left-to-right
> sequences of English adjectives before a noun:
>
>
>
>             Boeing
>      plane
> engine cowling color
>
>             Boeing plane                                               engine
> cowling color
>
>             Boeing plane engine                                    cowling
> color
>
>             Boeing plane engine cowling                        color
>
>             Boeing plane engine cowling color
>
>
>
> In these five examples, the final word in each column (left and right) is a
> noun, and all the words before it are adjectives. If you then take any
> combination from the left and then concatenate it with the right (without
> changing the sequence), the result is that all but the last word is turned
> into an adjective, and “color” is the noun they all describe.
>
>
>
> I hope this clears up any confusion about \$has statements. I definitely see
> the need to include some additional clarification about this in the XDI RDF
> Graph Model spec.
>
>
>
> =Drummond
>

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

```

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