- 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