- From: Joshua Tauberer <tauberer@for.net>
- Date: Thu, 16 Jun 2005 07:33:45 -0400
- To: Henry Story <henry.story@bblfish.net>
- CC: "'SWIG'" <semantic-web@w3.org>
Henry Story wrote, quoting "Semantic Web Architecture: Stack of two
Towers?":
> Given an ontology containing only a single RDF triple:
> <#pat> <#knows> <#joe>
> the answer to a query asking if pat knows exactly one person would be
> “no” under RDF’s open world semantics, but “yes” under the closed world
> semantics of Datalog.
I haven't thought about this too much, but open vs. closed might be too
strict a distinction. For the above triple, there are more than two
ways to interpret it in terms of open/closed:
<pat knows joe> and nothing else can be concluded. (open)
The only fact in the universe is <pat knows joe>. (really closed)
The only x satisfying <pat knows x> is joe, but joe is known by
other people. (closed w.r.t. object)
The only x satisfying <pat x joe> is knows. (closed w.r.t. pred)
The only x satisfying <x knows joe> is joe. (closed w.r.t. subj)
The only <x,y> satisfying <pat x y> is <knows, joe>.
And so on.
But, this is a property of documents, not statements. Going from
yesterday's example:
sr39 dc:title "S. Res. 39: A resolution apologizing to the victims of
lynching and the descendants of those..." .
sr39 bill:cosponsor Spector , Corzine , Sarbanes .
...
This document gives all of the cosponsors, in a closed sense, but it
would be wrong to say that the RDF document is closed even w.r.t the
objects, because sr39 might have other dc:titles.
Henry's named graph approach would work if the document is divided into
two parts:
sr39 dc:title "S. Res. 39: A resolution apologizing to the victims of
lynching and the descendants of those..." .
{ ?bill bill:cosponsor Spector , Corzine, Sarbanes }
rdf:type ex:ClosedUnderObject .
ex:ClosedUnderObject would apply to a named graph the statements of
which all have the same subject and predicate, and it indicates that all
objects are listed.
But I think a more flexible approach would be to describe exactly what
is closed about the document. So in addition to the original triples
without named graphs, add this:
<> ex:closedUnder { { sr39 bill:cosponsor ?x } log:forAll ?x } .
Indicating any triple that matches <sr39 bill:cosponsor ?x> is going to
be in that document, if the triple is true.
That breaks down to:
{
{ sr39 bill:cosponsor ?x }
log:implies
{ <> log:includes { sr39 bill:cosponsor ?x } }
} log:forAll ?x .
Although this one is a bit complicated to deal with.
--
- Joshua Tauberer
http://taubz.for.net
** Nothing Unreal Exists **
Received on Thursday, 16 June 2005 11:34:11 UTC