# Re: Attempt to provide semantics to Sandro's named graph design

```On Wed, 2012-04-11 at 16:27 +0200, Ivan Herman wrote:
> Hi Sandro,
>
> On Apr 11, 2012, at 16:14 , Sandro Hawke wrote:
>
> [snip]
>
> >>
> >>
> >>>
> >>> * I think we want another condition that says a given label can only be
> >>> associated with one graph.   I'm not sure if we say that in the DS
> >>> conditions and in merging, or somehow say it globally.    Anyway, it
> >>> would be something like:
> >>>
> >>> all i,j in (1...n): if (ui,Gi) in DS and
> >>>                         (uj,Gj) in DS and
> >>>                          ui = uj
> >>>                        then Gi=Gj.
> >>>
> >>>
> >>
> >> Right. This was not necessary before, that is why I used the ∃! in the formula that has now changed. Except that it is not Gi=Gj, but that the two graphs are equivalent (modulo bnodes...).
> >
> > Just to make sure I understand you, this equivalence is to deal with the
> > problem where ig you parse the Turtle document "{} <b> 1; <c> 1" twice,
> > you're going to get two DIFFERENT graphs, right?   So you're saying Gi
> > and Gj aren't the same, but are equivalent in this bnode-renaming way.
> > If so, yes, I agree.
>
> I presume you meant [] and not {}...
>
> Yes, graph equivalence means that the two graphs may be transformed into one another modulo some bnode renaming magic.
>
> >
> >> As for the global thing: I think the semantics can go as far as saying that if you use the same label to two different graphs, then you get into an inconsistent situation.
> >>
> >> Looking at the result: at the moment I do not see any value in the rdf:Graph class! Indeed, none of the semantic conditions make use of it (except of course its definition). And because this semantics *is* fairly weak after all, this may be fine.
> >
> > Maybe you're missing Condition 3?   That uses rdf:Graph.
>
> Yes, but the only thing that condition does is to define what rdf:Graph means. But none of the other condition refer to it; put it another way, all the other conditions are formulated without a reference to the fact that ui is or is not in rdf:Graph. If so, what is the use?
>
> >
> > You could make that a bit stronger, too, making it a biconditional.
> > That is, it is also true that I(ui)=Gi implies {ui rdf:type rdf:Graph}.
>
> Yep, could be done, but does not change what I said...

I don't understand.   rdf:Graph, just as defined in condition 3, is
absolutely necessary for some use cases, like providing the dc:license
of a graph.

> >> Although... there is still the subgraphing question pending;
> >
> > I'd call that the partial-vs-complete graph reference question, but,
> > yes.   This is one of those cases where people are using DWIM semantics,
>
> 'DWIM' ??

Do What I Mean.    That is, people are just using Trig with some
semantics in mind and in their code which may not be the same as other
people's.   But see email sent 5 minutes ago that maybe frames this in
an okay way.

> > so it's painful to switch to standard semantics.
> >
> > For clarity, we might want to use some syntax like this for now, inside
> > the group:
> >
> > <u> {= <a> <b> <c> }    for complete-graph semantics
> >
> >     read as <u> denotes something which hasGraph <a> <b> <c>.
> >
> > <u> {+ <a> <b> <c> }    for partial-graph semantics.
> >
> >     read as <u> denotes something which hasGraph a graph that includes
> >     at least the triple <a> <b> <c>
> >
> > (Earlier I suggested using "..." instead of "+", but that gets
> > confused with metasyntax.  People use "..." all the time in their
> > examples to mean they're leaving out some details of the example.)
> >
> > (Also, Eric suggesting using +{...}, but putting an equals outside the
> > braces has a very different implication.)
> >
> >
> >> also whether we want to syntactically determine the nature of the default graph.
> >
> > You mean like whether it's the merge of the named graphs or not?
>
> Yes. This came up reading Tom Baker's examples. The semantics being as it is, whether the default graph is the union of all the graphs or not makes a major difference.

Maybe in Trig, if there is no default graph, it's the merge.    If you
want an empty default graph, you have to say "{}".

-- Sandro

> Ivan
>
> >
> >     -- Sandro
> >
> >> Ivan
> >>
> >>>
> >>> That's it for now...
> >>>
> >>>  -- Sandro
> >>>
> >>>
> >>>
> >>
> >>
> >> ----
> >> Ivan Herman, W3C Semantic Web Activity Lead
> >> Home: http://www.w3.org/People/Ivan/
> >> mobile: +31-641044153
> >> FOAF: http://www.ivan-herman.net/foaf.rdf
> >>
> >>
> >>
> >>
> >>
> >
> >
>
>
> ----
> Ivan Herman, W3C Semantic Web Activity Lead
> Home: http://www.w3.org/People/Ivan/
> mobile: +31-641044153
> FOAF: http://www.ivan-herman.net/foaf.rdf
>
>
>
>
>
```

Received on Wednesday, 11 April 2012 14:42:06 UTC