Graham Klyne, 28-Jan-2002
[[[CAVEAT: work-in-progress, contains half-baked ideas]]]
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:
some statements may be true in some qualifying circumstance (e.g. at some given point in time, or in some defined situation. Holmes is a detective in some well-known fiction, but a Supreme Court Justice in US legal history is a widely-noted example of this, from [2]);
statements may be accepted as true only if they come from a source considered to be reliable (if a car dealer says some car is sound I don't assume it is, but if an independent inspector says so I may feel it is safe to purchase);
statements may be recognized as truth only if the recipient is in possession of certain other information (Clark Kent, being the same person as Superman, is a strong person but Lois Lane doesn't know that Clark is Superman so does not accept that Clark is a strong person).
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.)
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:
{some-statements} a :FalseHood
meaning that it is asserted that the conjunction of the statements in the
formula is not true. This is an extreme case of some statements being unreliable.
{some-statements} :implies {some-other-statements}
meaning that in some circumstance where the first set of statements are
all true, the second set of statements are also all true. This could be
applied in any of the circumstances noted above.
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).
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:
From an implementation perspective, forcing elements of RDF syntax into the domain of representation seems to fail the ideal of separating implementation internals from presentation. I would wish to be able to replace all URIs by locally unique tokens for the purposes of processing RDF information.
It seems to completely overlook the stated intent that URIs form a global space for naming [9].
It has been suggested that providing mechanisms to assert quoted statements can be semantically tricky [10], and introducing such trickiness into a language as simple as RDF feels to me like possible overkill.
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:
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.]]]
[[[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)]]]
[[[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?]]]
[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]]]
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0227.html
(which was subsequent to: http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0200.html,
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]]]
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0260.html
http://lists.w3.org/Archives/Public/www-rdf-logic/2001May/0359.html (reification
and negation)
[7] Jos de Roo, [[[Euler experiences with N3 contexts - could not find a complete
account]]]
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0240.html
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0234.html
[8] Dan Connolly, Re: Proposals? Re: use/mention and reification,
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0287.html (referential
transparency of "{...}")
[9] Tim Berners-Lee, Universal Resource Identifiers -- Axioms of Web Architecture; Global Scope, http://www.w3.org/DesignIssues/Axioms.html#unique
[10] Pat Hayes, Re: What do the ontologists want,
http://lists.w3.org/Archives/Public/www-rdf-logic/2001May/0045.html; see also:
http://lists.w3.org/Archives/Public/www-rdf-logic/2001Feb/0055.html ("intensionality")
http://lists.w3.org/Archives/Public/www-rdf-logic/2001May/0085.html ("structural
quotation")
http://lists.w3.org/Archives/Public/www-rdf-logic/2001May/0083.html ("opacity")
[11] Graham Klyne, Re: Proposals? Re: use/mention and reification,
http://lists.w3.org/Archives/Public/w3c-rdfcore-wg/2002Jan/0280.html
[12] Dov Gabay, Elementary Logics: A Procedural Perspective, Prentice Hall Series in Computer Science, 1998, ISBN 0-13-726365-1.
xxx
xxx