[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: XDI dictionary, reasoner...
********** 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
+phone
$has <--2-->
+home
$has$a <--4-->
+home
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.
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
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]