[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [xdi] XDI contexts and cross-references
Ok, good I think I have it then. What XRI's would
assert the two statements with literals? Since we're saying an XDI graph
can be represented as a set of XRIs, we need XRI's to represent the low level
values. I forgot about " char not being valid XRI syntax again, but is
there a mechanism for asserting datatype property statements like
those?
Without quotes my next choice would be something along
the lines of using the data: uri scheme with base64 encoding and mime type for
small literals and MIME with cid/mid for large literals:
=drummond+home/+email/$xsd$string(data:text/plain;base64,ZHNyLmV4YW1wbGVAZ21haWwuY29t)
=drummond+work/+email/$xsd$string(data:text/plain;base64,ZHJ1bW1vbmQuZXhhbXBsZUBjb3JkYW5jZS5uZXQ=)
I
think's it's necessary to retain the ability to fully describe the XDI graph
using n XRIs, and so I think we need some way to XRI encode those last two
assertions.
What
are everyone's thoughts on this?
Bill
From: Drummond Reed [mailto:drummond.reed@cordance.net] Sent: Friday, March 28, 2008 3:27 PM To: Barnhill, William [USA]; 'Markus Sabadello' Cc: xdi@lists.oasis-open.org Subject: RE: [xdi] XDI contexts and cross-references Yes, Bill, those are
the XRIs being asserted except the last two. The literals in the last two
statements are not part of the XRIs. The XRIs are
just: =drummond+work/+email =drummond+home/+email This XRI is the address
of the literal, but the literal itself it not part of the address. It can’t be
because: a) it’s not an XRI, and b) XRIs can’t include
quotes. RE using the dollar
sign as a suffix, yes, that would be legal XRI syntax _under the proposal for direct
concatenation_ (see http://wiki.oasis-open.org/xri/XriThree/SyntaxAbnf).
(Caveat, as per the XDI RDF Model doc: that is not an approved XRI 3.0 syntax
yet, just the proposal we’re working with.) The proposed semantics – and nothing
more than that – around using $ as a suffix on a predicate is that it means “the
canonical version of a set of instances”, i.e., if +email was the predicate,
+email$ means that no matter how many subtypes/instances of an email address you
have, what is the one (and only one) considered canonical (which may not be any
of them of course). Hope this
helps, =Drummond
From: Barnhill,
William [USA] [mailto:barnhill_william@bah.com] Hmm, okay, so if I was
inputting the example in your email to an XDI graph I would be asserting the
following XRIs, correct? =drummond/+email//=drummond+home/+email =drummond/+email//=drummond+work/+email =drummond/+email+home/(=drummond+home/+email) =drummond/+email+work/(=drummond+work/+email) =drummond/+email$/(=drummond+work/+email)
(Is this valid XRI syntax with the $, and what is the
meaning?) =drummond+home/+email/“dsr.example@gmail.com” =drummond+work/+email/“drummond.example@cordance.net” Bill From: Drummond
Reed [mailto:drummond.reed@cordance.net] Good point, Markus –
since I only had one XDI subject in these examples, the cross-reference example
was relative to that XDI subject. But yes, absolutely, cross-references can be
either relative or absolute. To illustrate, here’s
an XDI document with three subjects that uses absolute cross-references across
the subjects. It also shows a way to more deeply contextualize data context,
because now the actual literal email addresses for =drummond are in separate XDI
subjects that represent contextualize personas of =drummond (in this case home
and work). =drummond
+email
/
=drummond+home
+email
=drummond+work
+email
+email+home
(=drummond+home/+email)
+email+work
(=drummond+work/+email)
+email$
(=drummond+work/+email) =drummond+home
+email
“dsr.example@gmail.com” =drummond+work
+email
“drummond.example@cordance.net” =Drummond
From:
markus.sabadello@gmail.com [mailto:markus.sabadello@gmail.com] On Behalf Of Markus Sabadello
On Fri, Mar 28, 2008 at 8:25 AM, Drummond Reed <drummond.reed@cordance.net>
wrote: Another question that came
up on today's call involved the meaning of the following statement (a simplified
version of the example we were discussing from the XDI RDF Model doc, http://wiki.oasis-open.org/xdi/XdiRdfModel):
=drummond/+email//=drummond/+email+home Does that mean that
=drummond/+email is an equivalent XDI statement to
=drummond/+email+home? No, it only means that the
statement =drummond/+email is the parent context for the statement
=drummond/+email+home. =drummond/+email could also be the parent context for the
statement =drummond/+email+work. In X3 Simple, this would graph
as: =drummond
+email
/
=drummond
+email+home
+email+work So if you did an XDI $get on
=drummond/+email, the response would be the entire graph above. That graph in
turn could be part of this larger graph: =drummond
+email
/
=drummond
+email+home
+email+work
+email+home
+email+work
"drummond.example@cordance.net"
+email$
(/+email+work) This larger graph includes
the cross-reference "(/+email+work)". This reads as, "relative to the same XDI
subject, refer to the +email+work predicate". Unlike a subcontext, this
statement IS saying that one XDI statement refers directly to another one, i.e.,
the first XDI statement below refers to the second
one:
=drummond/+email$/(/+email+work)
=drummond/+email+work So, for purposes of
illustration of these two concepts – XDI contexts and XDI cross-references, an
XDI request/response pattern against the full graph above, translated from
English into X3, might be: Q: "Markus would like
Drummond's email address." =markus
$get
/
=drummond
+email A: "Drummond has two email
addresses, home and work." =drummond
+email
/
=drummond
+email+home
+email+work Q: "Then Markus would like
Drummond's home email address." =markus
$get
/
=drummond
+email+home A: "Here is the
value." =drummond
+email+home ************* A different request response
pattern against the same path might be: Q: "Markus would like
Drummond's canonical email address." =markus
$get
/
=drummond
+email$ A: "Drummond's canonical
email address is his work email address." =drummond
+email$
(/+email+work) Q: "Then Markus would like
Drummond's work email address." =markus
$get
/
=drummond
+email+work A: "Here is the
value." =drummond
+email+work
"drummond.example@cordance.net" *********** Note that one of the last
two roundtrips could be eliminated by the simple rule that the server would
resolve xrefs within the same XDI context. This would result in the following
request/response: Q: "Markus would like
Drummond's canonical email address." =markus
$get
/
=drummond
+email$ A: "Drummond's canonical
email address is his work email address, and here is the
value." =drummond
+email$
(/+email+work)
+email+work
"drummond.example@cordance.net" |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]