Hello Drummond,
I'm still thinking at all possible implications, however I'd like to
express one first comment on this: if we assume that +x+y and +x/+y
are synonyms, we have two implications, as you properly describe:
from point 1) we have two ways of saying the same thing
from point 2) we have an asymmetry in case of a three part statement,
cannot use +x+y+z to refer to +x/+y/+z
Right now +x/+y and +x+y have been thought for different purposes: the
first one to be used in query, e.g.
=markus
$get
/
=drummond
+friend
whereas the second one has been introduced in order to have the
possibility to assert something about +x/+y, having a way to reference
it as a new subject in the graph.
Are we sure that we really want to use them as synonyms?
Thanks,
Giovanni
At 08.16 05/05/2009, Drummond Reed wrote:
It was an extremely productive XDI TC telecon this last week (see the
minutes at http://lists.oasis-open.org/archives/xdi/200905/msg00000.html)
because it resulted in, I believe, a precise definition of Giovanni's
proposal for the definition of $has statements. I want to reiterate that
definition here and discuss two key implications that need to be reflected
in the XDI Addressing & RDF Graph Model spec.
1) REVISED DEFINITION OF $HAS PREDICATE
An XDI RDF $has statement between +x and +y, i.e., +x/$has/+y, asserts that
+y is a predicate on the subject +x. It infers the following two XDI RDF
subjects exist:
(+x/+y)
+x+y
These two XDI RDF subjects are synonyms, i.e. this means the following two
XDI RDF statements are true:
+x+y/$is/(+x/+y)
(+x/+y)/$is/+x+y
In addition, both the subjects (+x/+y) and +x+y identify the set of all XDI
RDF nodes that are objects of the XDI RDF statement +x/+y.
Lastly, this definition is recursive. So the XDI RDF statement +x+y/$has/+z
identifies the set of all XDI RDF nodes that are objects of the XDI RDF
statement +x+y/+z, and that this set can be identified by either of the
following two XDI RDF subjects:
((+x/+y)/+z)
+x+y+z
This recursion repeats to any depth; ordering is always left-to-right.
2) THREE PART XDI RDF STATEMENTS
Giovanni's email
(http://lists.oasis-open.org/archives/xdi/200904/msg00017.html) also
proposed that +x/+y/+z infers +x+y+z. However the above definition does not
allow this. +x+y+z expresses +x+y/$has/+z, which is equivalent to
((+x/+y)/+z). Rather, if there is a need to refer to a complete three-part
XDI RDF statement such as +x/+y/+z, the entire statement becomes a
cross-reference (+x/+y/+z). There is no shorthand for this statement.
3) $HAS$A STATEMENTS NOT NEEDED
Another key implication of this new definition is profound: $has$a
statements no longer appear to be necessary. Rather $, $a, $is, and $has
appear to be the complete set of metagraph predicates needed to express the
fundamental relationships in an RDF graph:
$a is an incoming arc relationship (inverse: $is$a)
$is is a self-referential arc relationship (and is its own inverse)
$has is an outgoing arc relationship (inverse: $is$has)
This actually solves some longstanding issues around clarifying the
relationship of $has and $has$a
If everyone is in agreement with these conclusions, I will update
http://wiki.oasis-open.org/xdi/XdiOne/RdfGraphModel to reflect them, which
will move us one step closer to publishing it as a spec.
=Drummond
---------------------------------------------------------------------
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
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.