Circumstance, provenance and partial knowledge

Limiting the scope of RDF assertions

Graham Klyne, 28-Jan-2002

[[[CAVEAT: work-in-progress, contains half-baked ideas]]]

1. Background

This note discusses attempts to explore some aspects of representing unreliable and incomplete information using RDF (and the structure defined as "reification" by RDFM&S [1]).

A simple RDF graph consists of triples, each of which corresponds to a statement that is held or asserted to be true. In this, there is no recognition that truth may vary according to circumstance:

Although these examples are very different, there is a common theme that some statement(s) may be considered true or not according to the circumstance in which they are evaluated.

This note revisits some topics that I explored in an earlier paper [3] in the light of some subsequent discussions and experiments, and aims to move towards a goal of formalizing the representation of these ideas in RDF, and their corresponding model theoretic denotation. A key idea that I wish to preserve is that the denotation of a URI reference in an RDF graph is largely invariant according to circumstance; what may change is access to information about what is denoted. (But as Dan Brickley has pointed out [4], this is something of an idealization because there may always be circumstances in which different people use the same URI reference to indicate a different thing. I am proceeding on the assumption, for now, that such inconsistent usage can be treated as unreliable information according to the mechanisms explored here.)

2. Contexts in Notation 3

Notation 3 [5] provides the notion of a "formula", and syntax for its use in conjunction with RDF statements. There is not, to my knowledge, a clear consensus about what a formula actually is or denotes, beyond being a "set of statements". A "context" is described as being a relationship between a statement and the formula to which it belongs. (Interestingly, John McCarthy declined to offer a definition of context in his paper on formalizing context [2].)

However, it seems that this idea is intended to address the some problems like those introduced above, and maybe more. Example uses of formulae in N3 include things like these, where braces "{...}" are used to enclose a formula:

The introduction of contexts in Notation 3 seems to be very much associated with the introduction of primitives for expressing full first order logic. This note has a more modest goal, namely the scoping of asserted truths to some collection of statements (formula), and a consequent limitation on the conclusions that may be drawn from some rule of deduction (whose means of definition is not specified).

3. Implementation by symbol quoting

Dan Connolly [6] has suggested an implementation of contexts in Notation 3 that:

(a) treats a formula as a collection of reified RDF statements, and

(b) treats reification as a construct in which URI-references are quoted; i.e. their normal interpretation is suspended when they appear within a formula.

This has the effect that a fact asserted outside a formula cannot be used to deduce the truth of new statements inside the context of that formula. Or, as Dan Connolly said [8]:

:Lois :accepts { :Superman rdf:type :StrongPerson } .
:ClarkKent = :Superman.
does *not* ential that 
:Lois :accepts { :ClarkKent rdf:type :StrongPerson } . 

i.e. {} are not referentially transparent.

I have concerns with this approach:

4. Alternative: scoping assertions by context

My goal is to keep the application of rdf:Statement and friends well within the realms of "use" rather than "mention", and address the desired consequences at a logical rather than a purely structural level. (Maybe the use of rdf:Statement, etc., is not appropriate here - this topic is revisited later.)

I previously suggested in an informal email [11] that contexts might be implemented by a combination of RDF reification and containers. Dan Connolly pointed out [8] that this approach is flawed because deductions made available from one context can be inappropriately imported into other contexts. The flat space of RDF assertions is not capable of expressing the modalities [[[correct use of this term?]]] invoked by the circumstances noted in the first section above.

Syntactically, contexts in N3 correspond to a hierarchical nesting of statements and formulae, with the outermost level for a given expression corresponding to statements asserted by that expression. (Where "asserted by" means true in any model.) The truth or otherwise of statements contained in any formula has no direct bearing on the truth of the overall expression, but their presence may affect new expressions that can be obtained using some given rules of deduction. (This note does not address how such rules may be expressed, and particular does not require that they be expressed in RDF.)

The evaluation of statements may be related to a corresponding hierarchy of situations, or contexts. The evaluation of a statement at the outermost level of an expression is relative to some global context. The evaluation of a statement in some formula is relative to a context that is contained in the immediately surrounding expression's context.

So what is the desired relationship between the truth of a statement in an outermost context, and the truth of the same statement in some inner context? It is clear that they should not be equivalent, since that would simply correspond to a flat space of assertions, which has already been demonstrated to be inadequate for our purposes. Three other possibilities spring to mind:

  1. no relationship: a statement in an inner context can be true or false independently of the same statement in a surrounding context,
  2. downward propagation: a statement in some context is also true in any context that it contains, or
  3. upward propagation: a statement true in some context is also true in the immediately surrounding context.

Dan Connolly's approach [6] seems to have the effect of (1), in that the symbols used in a formula do not share a denotation with their use in the surrounding expression. Running code suggests this is a viable and useful possibility. [[[My conclusion assumes denotations can be determined independently?]]]

Any approach that had the effect of (3) is disregarded here because it would necessarily result in the same undesired results that are obtained using a flat space of assertions, as all assertions true in any context would necessarily also be true in the top-level global context.

I wish to explore an approach that achieves the effect of (2), in that it seems to capture some of the intuitive interdependency of nested contexts without instantly falling foul of the aforementioned difficulties. An immediate consequence of this is that:

:Lois :accepts { :Superman rdf:type :StrongPerson } .
:ClarkKent = :Superman.
does ential
:Lois :accepts { :ClarkKent rdf:type :StrongPerson } .

which requires us to reconsider what it means for a statement to appear in an outermost context. The above example shows that it would not be sufficient for a statement to be true; it must also be information that is universally available. The above example was the result of a deduction from a slightly more complex example [11], or which this is a revised version:

    :Lois :accepts { :Superman rdf:type :StrongPerson .
:ClarkKent rdf:type :WeakPerson } . :Reader :accepts { :Superman = :ClarkKent .
:Superman rdf:type :StrongPerson } . :Reader rdf:type :knowsAll .

Under the revised version of containing contexts, having everything :Reader knows to be universally true asserts the universal truth of :Superman = :ClarkKent ., but this is not enough to put that conclusion into the top-level context. Thus, the conclusions to be drawn in this case are more limited:

:Reader :accepts { :ClarkKent rdf:type :StrongPerson } . 

[[[At this stage, I'm pretty much thinking that this is not the right way to go: there should be no automatic relationship between the assertions in different contexts; any such relationships should be a property of any defined relationship between the contexts. Then, the top-level context simply becomes a holder for universal truths, which is a simpler, more intuitive idea. In the above examples, the intended interpretations of :accepts and :knowsAll may allow free exchange of assertions between the :Reader :accepts and top-level contexts, but would not allow exchange between :Lois :accepts and the top-level.]]]


5. Model theory

[[[Details TBD]]]

[[[Use Possible-world Kripke model? See Gabay [12] section 9.1 -- (S,R,o,h), S = set of possible worlds, R=accessibility relation, o=world corresponding to top-level context, h=interpretation function]]]

[[[Anything true in o is true without modal qualification; thus h(o,BOX E) == h(o,E); possible world accessibility function R is "contained in" relation on contexts, thus, anything modally true in some context is also modally true in any contained contexts.]]]

[[[Achieve the model constraints by refining the interperation of properties? i.e. IEXT function is dependent on context. Develop relationship between IEXT(x,p) for different values of x -- I anticipate something like if context x2 is contained in context x1, we get R(x1,x2) => IEXT(x1,p) SUPERSET IEXT(x2,p)]]]


6. Encoding in basic RDF

[[[Thus far, ideas based on syntax of N3.]]]

[[[Details TBD]]]

[[[Suggest that this can be encoded using reification per RDFcore proposal (1), with each level of nesting resulting in a new level of reification. (Even the fleas have fleas!) This might be easier to handle if reification properties have special semantics?]]]


7. References

[1] RDFM&S

[2] John McCarthy, Notes on Formalizing Context, [[[xxx]]]

[3] Graham Klyne, [[[notes on contexts]]]

[4] Dan Brickley, [[[note on reliability of URI denotation in informal email]]]
(which was subsequent to:, where "de re" vs "de dicto" statements are noted, with further references.)

[5] Tim Berners-Lee, [[[Notation 3]]]

[6] Dan Connolly, [[[notes on implementing N3 contexts]]] (reification and negation)

[7] Jos de Roo, [[[Euler experiences with N3 contexts - could not find a complete account]]]

[8] Dan Connolly, Re: Proposals? Re: use/mention and reification, (referential transparency of "{...}")

[9] Tim Berners-Lee, Universal Resource Identifiers -- Axioms of Web Architecture; Global Scope,

[10] Pat Hayes, Re: What do the ontologists want,; see also: ("intensionality") ("structural quotation") ("opacity")

[11] Graham Klyne, Re: Proposals? Re: use/mention and reification,

[12] Dov Gabay, Elementary Logics: A Procedural Perspective, Prentice Hall Series in Computer Science, 1998, ISBN 0-13-726365-1.