Markus, funny you should put it that way. If
you really wanted to say that the following three statements all “identified
the same literal”…then you’d use cross-references to make it
COMPLETELY unambiguous. For example:
#1
=giovanni+phone+home
$type$xsd$string
"+39 06 4451843"
#2
=giovanni
+phone+home
(=giovanni+phone+home/$type$xsd$string)
#3
=giovanni+phone
+home
(=giovanni+phone+home/$type$xsd$string)
That said, the point of this discussion
was to show how an XDI reasoner could use an XDI dictionary to logically
compare different XDI statements to see if it could prove they identified the
same resource on the basis of the $is, $is$a, $has, and $has$a statements (and
their inverses) in the dictionary.
On last Thursday’s telecon, we
concluded that from the dictionary definitions I had provided –
specifically the definition of +phone as…
+phone
$is$a
+ <--
generic object -->
$a$xsd$string <--
specific literal datatype -->
…that one could not conclusively
prove that the three statements above identified the same literal node because
the second two could also identify a generic phone object of type home (which
might represent another subject in the graph and not a literal node).
But if you narrowed the dictionary
definition of +phone to…
+phone
$is$a
$a$xsd$string <--
specific literal datatype -->
…(which should probably in fact be
the definition of +phone.number), then
in fact I think an XDI reasoner could tell you that all three statements
identify the same literal.
Hope this helps,
=Drummond
From:
markus.sabadello@gmail.com [mailto:markus.sabadello@gmail.com] On Behalf Of Markus Sabadello
Sent: Friday, April 25, 2008 8:44
PM
To: Giovanni Bartolomeo
Cc: Drummond Reed;
xdi@lists.oasis-open.org
Subject: Re: [xdi] XDI dictionary,
reasoner...
Sorry for having been quiet about this so far, but I don't understand it. What
does it mean to say that the three statements "identify the same
literal":
#1
=giovanni+phone+home
$type$xsd$string
"+39 06 4451843"
#2
=giovanni
+phone+home
"+39 06 4451843"
#3
=giovanni+phone
+home
"+39 06 4451843"
Assuming they do "identify the same literal", does that mean that
there is just one literal node in the graph, which is shared by three
predicates? If I apply a $mod message to one of the statements, will they all
change?
And is this what you are trying to prove with the dictionary?
Also, the obvious question I have to ask, what would an application look like
that demonstrates this functionality? What problems would you expect an XDI
library to solve here?
Markus
On Thu, Apr 24, 2008 at 12:09 PM, Giovanni Bartolomeo <giovanni.bartolomeo@uniroma2.it>
wrote:
Hello Drummond, All,
as for last week's request, I'm reintroducing this issue. After receiving your
answer, I tried to figure out how to prove that two XDI RDF statements
=giovanni+home+phone/$type$xsd$string/
=giovanni/+home+phone/
does identify the same node. In order to recall the whole
issue, which is now also on the wiki thanks to Drummond, http://wiki.oasis-open.org/xdi/XdiReasoners
I report hereafter the whole message, at the end my elaborations:
********** Drummond replies **********
I am so glad someone finally asked this question in black and white – I
have been thinking about this issue of "XDI expressivity" for months
now given the fundamental capabilities of XDI RDF. Forgive me for providing an
extended answer, but I think the question can be so revealing about the power
of XDI RDF.
First, to answer your question right up front, "Do those three XDI
addresses identify the same literal node?", my answer is: "You cannot
know deterministically without reference to the XDI dictionaries used by the
statements."
The reason is that the three statements represent three different paths through
the XDI RDF graph, and as you pointed out, each path represents different
semantics. So you you really have to drill all the way down into the graphs,
and the statements represented by each graph, in order to answer your question.
To do this, let's start by looking at the three graphs visually in X3 Simple
(one reason I love X3 Simple is that it lets you see the visual pattern of the
graph while at the same time seeing the addresses).
#1
=giovanni+phone+home
$type$xsd$string
"+39 06 4451843"
#2
=giovanni
+phone+home
"+39 06 4451843"
#3
=giovanni+phone
+home
"+39 06 4451843"
Now, let's "fully explode" each of these into ALL the XDI statements
they represent.
#1 (5 statements)
=giovanni
$has
+phone
=giovanni+phone
$has
+home
$type
$has
$xsd
$type$xsd
$has
$string
=giovanni+phone+home
$type$xsd$string
"+39 06 4451843"
#2 (3 statements)
=giovanni
$has
+phone+home
+phone
$has
+home
=giovanni
+phone+home
"+39 06 4451843"
#3 (2 statements)
=giovanni
$has
+phone
=giovanni+phone
+home
"+39 06 4451843"
Isn't it fascinating that the first graph represents five statements, the
second three, and the final one only two?
In any case, all three options here (plus more - see below) appear to be
completely valid chains of XDI statements between the XDI subject =giovanni and
the XDI literal "+39 06 4451843". But none of them asserts exactly
the same semantics (the only way to do that would be to use XDI synonyms, i.e.,
$is statements). However using an XDI reasoner and an XDI dictionary (which
itself is just a set of XDI statements comprising definitions), you could
verify that according to that dictionary, all these statements identify the
same literal node.
In fact the dictionary is pretty short. Here it is:
+phone
$is$a
<--1-->
+
$type$xsd$string
$has
<--2-->
+home
$a$has
<--3-->
+home
$has$a
<--4-->
+home
$a$has$a
<--5-->
+home
+home
$is$a
<--6-->
+
$has
<--7-->
+phone
$a$has
<--8-->
+phone
$has$a
<--9-->
+phone
$a$has$a
<--10-->
+phone
$type
$has
$xsd
$type$xsd
$has
$string
As short as it is, the semantics represented by those statements – while
crystal clear from a pure XDI semantics point-of-view – represent a
surprising range of grammatical relationships a human POV. Roughly translated
to English, the first ten statements say:
1) A phone is both a subject (noun) and a label for a type of data (typically
called a "phone number", but often abbreviated in English as just
"phone").
2) A phone can have a home, i.e., as a noun, it can have a possessive
relationship with another noun, home.
3) A phone is something a home can have (possessive relationship).
4) A phone has an attribute of home.
5) Phone is an attribute of a home.
6) Home is a subject.
7) A home can have a phone (possessive relationship – inverse of #3).
8) A home is something a phone can have (possessive relationship –
inverse of #2).
9) A home has an attribute of phone (inverse of #5).
10) Home is an attribute of a phone (inverse of #4).
Armed with that dictionary, an XDI reasoner can quickly prove that all the
following XDI statements identify the same literal:
=giovanni+phone+home/$type$xsd$string/
=giovanni+home+phone/$type$xsd$string/
=giovanni/+home+phone/
=giovanni/+phone+home/
=giovanni+phone/+home/
=giovanni+home/+phone/
However, if you remove any of those XDI dictionary statements, some of the
above are no longer provably true. For example, if you remove the statements:
+phone
$has
$home
+home
$a$has
+phone
Then you could no longer prove that the following two statements identify the
same XDI object as the rest:
=giovanni+phone+home/$type$xsd$string/
=giovanni/+phone+home/
They MIGHT identify the same literal as the rest, but now you have nothing you
can prove that with.
There's much more I'd like to say about this simple dictionary, but I'm out of
time. However I encourage everyone who is interested to study it closely. To
test your knowledge, here's a quiz question:
"Given the
dictionary above, how can you prove that it is valid for the XDI object of all
six statements to be a literal string?"
=Drummond
Now, I think the most important part to understand is related to the semantics
underlying the dictionary sentences:
+phone
$has
<--2-->
+home
$has$a
<--4-->
+home
which in English means
2) A phone can have a home, i.e., as a
noun, it can have a possessive relationship with another noun, home.
4) A phone has an attribute of home.
$has, according to XDI RDF model v9, is aggregation,
meaning that
Any two XDI subjects with a $has relationship can be concatenated into
a single XRI representing this relationship.
Thus +phone+home is the way how aggregation is expressed.
Whereas $has$a is defined as a composition.
The object in the RDF statement is therefore an "attribute" belonging
to the subject.
Example similar to the one in XDI RDF v9: =giovanni/$has$a/+hair+color; thus
=giovanni/+hair+color/+black should be a valid XDI RDF statement,
expressing composition.
Quoting from wikipedia, difference between aggregation and composition: Aggregation differs from ordinary composition in that
it does not imply ownership. In composition, when the owning object is
destroyed, so are the contained objects. In aggregation, this is not
necessarily true. For example, a university owns various departments (e.g.,
chemistry), and each department has a number of professors. If the university
closes, the departments will no longer exist, but the professors in those
departments will continue to exist. Therefore, a University can be seen as a
composition of departments, whereas departments have an aggregation of
professors. In addition, a Professor could work in more than one department,
but a department could not be part of more than one university.
Now, I tried to work out a formal proof using the assertions 1)-10) but
I failed in proving
that
all the following XDI statements identify the same literal:
...
=giovanni+home+phone/$type$xsd$string/
=giovanni/+home+phone/
...
Probably I'm missing something (probably some underlying
semantics), however, can you give some hints? Maybe we can work out the prove
once for all and report this in the wiki/deliverable, as reference?
Thanks,
Giovanni
At 01.32 24/04/2008, Drummond Reed wrote:
4) TECH TOPIC: XDI
DICTIONARY AND XDI REASONER
On last week's call Giovanni requested that our tech topic this week be the
XDI dictionary and XDI reasoner discussion we started on the list. Wikipedia
has a good article on semantic reasoners:
http://en.wikipedia.org/wiki/Semantic_Reasoner
Drummond created a wiki page to capture the email thread for further
discussion:
http://wiki.oasis-open.org/xdi/XdiReasoners
|