Re: Using rdf reification to nest statements in N3 like contexts

From: "Graham Klyne" <GK@NineByNine.org>

> Example:
>    A says { B says {C says D} . B a liar } .
> If I decide that what A says is true, I may enter the context of
> what A says and assert:
>    B says {C says D} . B a liar .
> If we have a syntactic construct for containment, as N3, then the contents
> of {...} can be treated opaquely as you suggest.  But when all this is
> encoded into a flat space of triples, some other mechanism is needed.  I
am
> proposing (multiple levels of) encoding as reification-quads.

Well I think that coding a triple as the RDF reification quad makes it
default to being opaque (not necessarialy true) in every context ... in
other words a reified statement is simply not asserted in any context.  If
we want the statement to be true in some context we will need to invent a
property that asserts in that context.  N3 seems to do that implicitly:   {B
a liar. {inner nested context}} means that inside the first {} 'B a liar' is
true, but what is in the {inner nested context} is not necessarily true.
When we project that back to simple triples we would need to explicitly
state the knowledge that 'B a liar' is true in the first outer context.

> If the inner  levels were not multiple encoded,
> we might end up concluding that in the
> context of what A says:
>    C says D
> is a truth, even though A also says that B is a liar.

See mentograph for comparison of the N3 quadTuples and RDF Triples for your
example:
http://robustai.net/mentography/context_n3_rdf_liar.gif
Note that the red triples are implicit in N3 but need to be stated
explicitly in RDF\XML.  The statement {C says D} although nested under the
context of what B believes, is still opaque to (not necessarialy true in)
that contex ... which is what we want.

Seth Russell

Received on Friday, 15 March 2002 15:32:23 UTC