"Tagged Graphs" (was Re: complete vs partial graph semantics)

On Thu, 2012-04-12 at 11:06 -0700, Pat Hayes wrote:
> On Apr 12, 2012, at 8:09 AM, Sandro Hawke wrote:
> > I'm having a lot of trouble understanding the motivation for
> > partial-graph semantics.   It seems to me like a kind-of-cool but
> way-too-complicated idea.
> OK, let me motivate it by providing a different intuition. You have been consistently thinking of the graph label as being an actual name for the graph (the one it is next to in the TriG document, that is), or at any rate for some graph or other which is closely related to the graph. That is, the graph name denotes a graph.  But going back to the intuitions built into Antoine's semantics, it is more natural there to think of the label as identifying not the graph itself, but a context within which to interpret the graph; and then, it is both natural and semantically valid to infer the merge of two graphs with the same label. 
> I think that this may be a fundamental split between two intuitions about what the graph "name" really names, and that this split may be irreconcileable; and the test case is
> <u> { <a> <b> <c> }
> <u> { <d> <e> <f> }
> are consistent and together entail ??
> <u> ( <a> <b> <c>
>            <d> <e> <f> }
> A: No when <u> names the graph, yes when it names some kind of larger interpretation context. 

So, in that case, it's more like a label or tag on a triple, right?  We
can put whatever labels we want on whatever triples we want, and then
later ask about which triples happened to have a particular label....

Here, the trig document:

    <u> { <a> <b> <c> }

might be read as: the triple <a> <b> <c> is tagged with the object I(u).

Then the SPARQL query expression "GRAPH <u> { ?s ?p ?o}" would be
understood as asking about all the triples which, as far as that
endpoint knows, currently are tagged with the object named <u>.

Okay, this seems like a coherent system, sure.   Does it work for the
use cases?     How about cc:license....

How do I write a trig file in which I publish two collections of
triples, one of which I license cc:by and the other cc:by-nc ?

I'd think something like:

   { <g1> cc:license cc:by, a rdf:Graph.
     <g2> cc:license cc:by-nc, a rdf:Graph.
   <g1> { ... these triples can by copied just giving attribution ... }
   <g2> { ... these triples need attribution and non-commercial use ... }

(I'm not sure we need the rdf:Graph in there, with this approach.)

Isn't this too fuzzy / open-ended?    What if someone else uses <g1> to
mean something else?   Or, how could I pick <g1> so that I'm right and
their wrong, if they use it for something else?

Given this imprecision, can I just do this:

   cc:by { ... these triples can by copied just giving attribution ... }
   cc:by-nc { ... these triples need attribution and non-commercial use ... }

I dunno.   Maybe this works.   It sure is simpler.

   -- Sandro

Received on Thursday, 12 April 2012 21:41:45 UTC