W3C home > Mailing lists > Public > www-rdf-interest@w3.org > November 2000

Re: Modelling "proper names", and other topics

From: Graham Klyne <GK@dial.pipex.com>
Date: Wed, 08 Nov 2000 11:04:47 +0000
Message-Id: <>
To: Seth Russell <seth@robustai.net>
Cc: RDF interest group <www-rdf-interest@w3.org>

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]


    [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.

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

     [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.


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
>Does that make sense?   Can you think of a case where this contrivance would
>not work?
>How would you do it?
>Seth Russell

Graham Klyne
Received on Wednesday, 8 November 2000 13:14:22 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:07:33 UTC