[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.

**References**:**Associativity of XDI $has statements***From:*Drummond Reed <drummond.reed@xdi.org>

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