W3C home > Mailing lists > Public > public-rdf-wg@w3.org > April 2012

Re: regrets and a new spin on contexts

From: Thomas Baker <tom@tombaker.org>
Date: Mon, 30 Apr 2012 10:21:02 -0400
To: Pat Hayes <phayes@ihmc.us>
Cc: W3C RDF WG <public-rdf-wg@w3.org>
Message-ID: <20120430142102.GA28271@julius>
On Mon, Apr 30, 2012 at 12:07:58AM -0500, Pat Hayes wrote:
> > What bothers me about "contexts" is that it could be taken to mean that the
> > meaning of an IRI depends on context.  I would not want the notion to be
> > taken as a license to violate the global context in a local context (think:
> > global variables and local variables).  
> 
> But that is exactly what it does provide. We may regret this, but it does
> provide this, um, licence. And this is exactly what Antoine (and others) want
> to have, as I understand it.  

Understood.  To put it another way, I would not want to convey the message that
RDF, by default, has a global context, but you're free to redefine IRIs any way
you'd like in an "RDF Local Context".  Programmers are used to the idea that
some variables have global scope and others are local to, say, a specific
function.  A global variable and a local variable may share the same name, but
are completely different variables. They are separated by a logical firewall.
This is precisely the image I think we should carefully avoid.  To illustrate
what I mean with some command-line Python:

    >>> x = 1           # Initializes a global variable x with value "1".

    >>> def foo(x):     # Defines a function with a local variable x as an argument.
    ...     print x     # The job of the function is simply to print the value of local variable x.

    >>> print x         # Prints the value of global variable x.
    1                   # We see that the value is "1", as set above.

    >>> print foo(2)    # Prints the result when the foo function is called
    2                   # with the value "2" as an argument, making "2" the value
                        # of local variable x.

    >>> print foo(x)    # Prints the result when the foo function is called
    1                   # with the value of the _global_ variable x (which is "1") 
                        # as an argument, making "1" the value of local variable x.

Of course, we cannot stop people from creating local contexts for IRIs that are
separated by a firewall from the global context; indeed, what people do in the
privacy of their own firewalls is not our concern.  But we should avoid any
suggestion that RDF Contexts/Extensions/Views/Lenses... are designed for declaring
local contexts that are separated from the global context in any _logical_
sense.

> > Rather, what we're doing is acknowledging that people "see" or "interpret"
> > IRIs through particular lenses.
> 
> What is the difference between a view through a lens and a change of context?
> Would there be any entailments that hold under one but not the other? 

To me, the subject of a triple using this (to-be-named) property _is_ the
context:

    > As I picture it, given
    > 
    >     <a> rdf:lens <b>
    > 
    > <a> is the "context", and <b> is some kind of document.

The context <a> already exists and is simply being viewed through the lens of
<b>.  In other words, <b> is not a _new_ context, just a lens through which to
view an existing context.  <a> is the context to which lens <b> applies.  (Yes,
I see how this could be explained as "putting <a> into context <b>", but that
is precisely how I would _not_ spin it.)

> >  In terms of message, the act of "seeing" or "interpreting" an object does
> >  not imply that the object that everyone sees is actually being
> >  transformed.
> 
> Hmm. So for example (trying to understand here....) "seeing" carbon as a
> mixture of isotopes rather than a single element is a different lens 'view'
> of the same real thing. Or taking 'person' to mean 'american person' is a
> kind of zoom lens. 

Exactly.

> Yes, that is an attractive analogy, indeed. 
> 
> >  Maybe something along the lines of "RDF
> > Interpretations" or "RDF Lenses"?
> 
> Not "interpretation" (the semantics has already used that one) but how about "view" ? Or "perspective"?? Or "angle" ???

Something like that, exactly.  I think we're on the same page.

> Then the 'inherits' property could be called rdf:inView  or just rdf:view or
> rdf:scope (as in telescope or microscope.) In fact, we could call them 'rdf
> scopes', it occurs to me:

I like "view" alot better than "scope" -- see the use of "global scope" and
"local scope" in the example above.  View, perspective, angle, lens... -- as
far as I know, these are all far removed from the language of computer
programming and are thus then less likely to send the wrong message.  

What I like about "lens" is that a lens, almost by definition, somehow alters
-- magnifies, distorts, refracts, corrects, whatever -- the view.  As I see it,
people are seeing the context from a particular (point of) "view",
"perspective", or "angle", but they are seeing it _through_ the "lens".  It is
this instrument -- the lens -- that interests us, not the thinking underlying
the design of the lens.

Tom

-- 
Tom Baker <tom@tombaker.org>
Received on Monday, 30 April 2012 14:21:39 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 22:02:04 UTC