[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [xdi] Associativity of XDI $has statements
Oops, I meant: (+a/+b) -> $$/$has//+a/$has/+b Kind regards, Bill Barnhill Booz Allen Hamilton - Rome, NY 315-330-7386 | william.barnhill.ctr@rl.af.mil | barnhill_william@bah.com ________________________________________ From: Barnhill, William [USA] Sent: Thursday, December 03, 2009 4:36 PM To: Drummond Reed; Giovanni Bartolomeo Cc: OASIS - XDI TC Subject: RE: [xdi] Associativity of XDI $has statements I see the primary operators as * and /. Using that and our conversations about $$, is the following correct? If not how would you expand the xref abbreviation to a form using only the core operators? (+a/+b) -> $$/$has//+a/+b Kind regards, Bill Barnhill Booz Allen Hamilton - Rome, NY 315-330-7386 | william.barnhill.ctr@rl.af.mil | barnhill_william@bah.com ________________________________________ From: drummond.reed@gmail.com [drummond.reed@gmail.com] On Behalf Of Drummond Reed [drummond.reed@xdi.org] Sent: Thursday, December 03, 2009 3:49 AM To: Giovanni Bartolomeo Cc: OASIS - XDI TC Subject: Re: [xdi] Associativity of XDI $has statements Giovanni, I apologize for taking so long to respond to this thread. First I was under deadline, then came Thanksgiving in the U.S., and then I was pondering how best to illustrate the point I was trying to make visually. See my responses inline below. On Tue, Nov 17, 2009 at 11:35 AM, Giovanni Bartolomeo <giovanni.bartolomeo@uniroma2.it<mailto:giovanni.bartolomeo@uniroma2.it>> wrote: 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. I agree completely that we need 100% mathematical precision. 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). Actually, this example reads just like the example I gave. Both 1 and 2 make sense to me In other words no matter how you pair the adjectives in "house door keyhole" (i.e., "house" + "door keyhole" or "house door" + keyhole", I don't think we would argue that you are identifying the same concept - a house door keyhole. 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. Now, in this case, you added particulr punctuation used in the English language: the possessive apostrophe. The use of that punctuation creates a conjunction between "markus" and "signature" that cannot be broker apart. This has a direct analog in XDI RDF - using a cross-reference to bind the two XRIs into one. In other words, instead of saying +a+b+c which is three XRI subsegments, you are saying +a(+b+c) which is two XRI subsegments. 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 This isn't quite right (and what's missing is very important). The correct list is: +y/$is$has/+x +x+y/$is$a/+y +y/$a/+x+y +x+y (+x/+y) <== NOTE THE PARENTHESES ARE REQUIRED - THIS IS AN XREF #1A: +x+y INFERS +x/$has/+y +y/$is$has/+x +x+y/$is$a/+y +y/$a/+x+y +x/+y Again, the last statement listed MUST be (+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 No, actually when you have +a(+b+c), you have only two XRI subsegments. So the only inferences are: +a/$has/(+b+c) (+b+c)/$is$has/+a +a(+b+c)/$is$a/(+b+c) (+b+c)/$a/+a(+b+c) You can also expand the (+b+c) inside the parens to ((+b/+c)) and (+b/$has/+c) for what that's worth. See the new PDF I posted with a new XDI RDF diagramming technique that illustrates what I've been trying to say about $has statement nesting. We can go over it on tomorrow's call. http://www.oasis-open.org/committees/download.php/35421/xdi-rdf-box-graphs-v1.pdf Best, =Drummond (going to bed now) Def. Quota "Drummond Reed" <drummond.reed@xdi.org<mailto: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. --------------------------------------------------------------------- To unsubscribe from this mail list, you must leave the OASIS TC that generates this mail. Follow this link to all your TCs in OASIS at: https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]