- From: Graham Klyne <GK@dial.pipex.com>
- Date: Wed, 08 Nov 2000 11:04:47 +0000
- To: Seth Russell <seth@robustai.net>
- Cc: RDF interest group <www-rdf-interest@w3.org>
Seth, I think we're on the same page, or very nearly so, just using different words. When I prepared my contexts paper (which is still work-in-progress), I looked at extending the RDF model as you suggest. The two options I considered were: [Ident, Pred, Subj, Obj] and [Context, Pred, Subj, Obj] the latter being your suggestion, and the former introducing an identifier that can be used to reference the statement itself. In the end I chose the former because I see one use of a context being as a composite statement, of which a primitive statement might be regarded a degenerate case. In which case, the resulting model is more uniform if the statement itself is identified rather than a context. I feel it is important to allow a statement to belong to an arbitrary number of contexts. (I think this is the only substantive difference between our approaches.) To me, this is part and parcel of the "anyone can say anything about anything" philosophy of semantic web developments. Which one context, then, would we associate with THE statement? I considered that one might introduce a context containing just the one statement and use that; but why bother, why not just label the the statement itself? I think you might, legitimately, view the statement identifier as the label of a context containing just that statement. In my view, this is isomorphic with my approach: one views a context as a composite statement, the other views a statement as a primitive context. Take your pick. Finally, I must note that either of these approaches are not the same as RDF as she is defined. We are working in a field that is attempting to create standards for interoperability (someone once said "the nice thing about standards is that there are so many to choose from"); but seriously, interoperability depends on having common ground. The common ground that we currently have is RDF M&S, so I think it's important to base this work in that specification. The only way I know of to do that is through reification, and in my contexts document I show how my model is merely an alternative (slightly restricted) "notation" for standard RDF. John McCarthy, in his paper on contexts, also points out that if one uses just FOL then reification is needed to construct the association of statements with contexts. <sidebar> In a private message, Wolfram Conen has pointed out that this does not necessarily have to apply to RDF, and argues that the reason that reification is needed with is to overcome a structural deficiency in RDF -- namely the lack of recursive nesting of statements in RDF triples, such as: [pred, subj, obj] -- simple statement [[pred1,subj1,obj1], [pred2,subj2,obj2], [pred3,subj3,obj3]] -- nested statements I.e. lacking the ability to include a statement as a resource in another statement (if I have understood correctly). In any case, I come from the view that RDF per M&S is what we have, and that I'll try to build upon that. I'm happy to create new models if there is a clear mapping back to basic RDF. Any way you slice it, I can't see how to map these ideas to standard RDF without invoking reification. </sidebar> #g -- At 07:48 AM 11/7/00 -0800, you wrote: >Graham Klyne wrote: > > > The reason is to distinguish between different _uses_ of a property: > > [SomeCity] --properName--> "Boston" > > and > > [me] --properName--> "Graham" > > are two different instances of "properName". The only way I know in RDF to > > distinguish them is through reification. > >Well in the case of two different instances of a properName, Im thinking of >doing it as follows. Take the example of your calling me "Seth Russell" >but my >11 year old son calls me Popa. So the RDF triples end up being: > >[me] properName "Seth Russell" >[me] properName "Popa" > >The question (i think you raise) is how does one name show up in one context >and not another. Well, in my implementation of the RDF graph I add another >element, turning the triple into a quad as follows: > >[C1] [me] properName "Seth Russell" >[C2] [me] properName "Popa" > >Where [Cn] is just a node of type context. In fact such a node would be no >different than your "container class" [1] but would be instantuated by the >extra quad above rather than as objects of the property "--rdfc:quotes-->". >The context nodes would form a hierarchy over a property (probably the inverse >of rdfc:member) very much like a class hierarchy. There would be >another set >of properties (say rdfc:vocab) hanging off the context nodes that would point >to words. Following the context tree upward for inheritance and downward >to a >set of vocabulary, we could always evaluate any context node to a set of >words. That set of words is what would be presented to the user as the >definition of the context. > >The user interface would allow for navigating these word sets. You can easily >see how, as the context nodes are navigated, different assertions will show >up. In the example above, when I have selected [C2] and am seeing the >vocabulary set {Jason, Pokemon, Mom, school, GameBoy } in the context window, >I would automatically expect [me] to be called "Popa". Look ma, no >reification! > >Does that make sense? Can you think of a case where this contrivance would >not work? > >How would you do it? > >[1] >http://public.research.mimesweeper.com/RDF/RDFContexts.html#3.1.3.1Ageneralcontainerforsetsofresources|outline > >Seth Russell ------------ Graham Klyne (GK@ACM.ORG)
Received on Wednesday, 8 November 2000 13:14:22 UTC