Re: rdfs:Graph ? comment on http://www.w3.org/TR/rdf11-concepts/#section-dataset and issue 35

On Sat, Sep 7, 2013 at 10:06 AM, Sandro Hawke <sandro@w3.org> wrote:

> [ I'm replying on-list, but if this is going to go back-and-forth much,
> let's move it to www-archive. ]
>
>
> On 09/06/2013 02:41 PM, Jeremy J Carroll wrote:
>
>> I remain unhappy with this resolution.
>>
>> I am reviewing the minutes:
>> https://www.w3.org/2013/**meeting/rdf-wg/2013-08-21#**
>> semantics_and_concepts<https://www.w3.org/2013/meeting/rdf-wg/2013-08-21#semantics_and_concepts>
>> and Peter is correct in saying:
>> "Jeremy wants there to be a way to require graph names denoting graphs"
>>
>
> Unfortunately, that notion is surprisingly ambiguous.  More explicit
> questions below.
>
>
>  I currently have a quad store with several named graphs, and some of
>> these named graphs 'belong' to 'organizations' within my knowledge model.
>> One of the graphs is named <http://my.graph.name.example.**org/<http://my.graph.name.example.org/>>,
>> one of the organizations is syapse:stoogesInc.
>>
>> I wish to be able to add a triple:
>>
>>     <http://my.graph.name.example.**org/<http://my.graph.name.example.org/>>
>> syapse:belongs syapse:stoogesInc .
>>
>> to a graph and have that triple mean, according to the RDF Semantics, RDF
>> Concepts and RDF Vocabulary recommendations, that in an interpretation in
>> which the triple is true that:
>>     ( I(<http://my.graph.name.**example.org/<http://my.graph.name.example.org/>>),
>> I(syapse:stoogesInc) ) is in IEXT(I(syapse:belongs))
>>
>
> As I understand it, that part is certainly true.   That's normal RDF
> Semantics.  The fact that http://my.graph.name.example.**org/<http://my.graph.name.example.org/>is also used as a graph name doesn't relax this semantic requirement.
>
>
>  and for it to not merely be an application convention that we are in fact
>> referring to the named graph in the dataset as the subject of the triple,
>> but for there to be some normative manner, whether formally or informally,
>> that licenses application specific behavior involving the named graph on
>> the basis of the truth of this triple involving the graph name.
>>
>
> I believe that's true as well, if we're using a loose, informal definition
> of "referring".   The specs do not require(<http://my.graph.name.**
> example.org/ <http://my.graph.name.example.org/>>) = the set of triples
> in question, but they do require I(<http://my.graph.name.**example.org/<http://my.graph.name.example.org/>>)
> = something clearly paired with a particular set of triples (while in a
> particular dataset).  So in that sense the graph name can be used to
> indicate or point to those triples, even if it isn't strictly "referring".
>
> Or something like that -- I find this way of thinking about it is too
> abstract for me to be sure I've got it right.  I prefer test cases, as
> below.


I suppose this has already been pointed out, but just in case: it looks to
me like RDF-MT already shows how to completely dissolve this problem, which
turns out to be merely apparent:

1.  Replace "name" with "label"
2.  Define the semantics of "label IRI" (= IRI used to label a graph) the
same way you define the semantics of "property IRI".

Sign vehicles can do more than merely refer to their signifieds.  The
cattleman's brand labels his cattle, but names his ranch.  When you move,
you throw your dishes in a box and slap a "kitchen" label on it; "kitchen"
labels the box but names the room.  Etc.

More to the point, RDF property IRIs denote whatever it is they denote, but
they do not (directly) denote their relations.  However they can be taken
as "labeling" their relations.  An IRI only becomes a propery IRI in virtue
of its use in an expression, and semantic voodoo stipulates that whatever
it denotes be associated with a binary relation containing the pair of
(denotations of the) terminal IRIs of the expression.  So strictly speaking
property IRIs do not (directly) refer to property relations.

Just treat graph labels in the same way.  An IRI becomes a graph label in
virtue of its use in an expression, and similar semantic voodoo stipulates
that whatever it denotes be associated with a unary relation (i.e.
predicate) containing the (denotation of the) other element of the
expression.  So a graph label IRI does not directly refer to the graph it
labels, but is associated with it.  "Labeling" seems like a good name for
this association.  E.g. a graph label may denote a person (informal RDF
semantics) while labeling a graph containing triples (formal RDF semantics)
about the person.

The critical point being that RDF-MT already bifurcates meaning into the
informal IRI-denotes-something (like a person) and the model theoretic
interpretation yielding IRI-denotes-mathematical-something.  Just exploit
that for graph labels the same way you do for property labels.

To use your examples:

TC1 - Does this dataset:
   PREFIX : <http://example.org/#>
   PREFIX rdf: <http://www.w3.org/1999/02/22-**rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>
   :g1 :p 1.
   GRAPH :g1 { :a :b :c }
   GRAPH :g2 { :a :b :c }
entail this:
   :g2 :p 1.

No more than :p :r 1. :a :p :c . :a :q :c. implies :q :r 1.

TC2 - Given this pair of datasets:
D1:
   PREFIX : <http://example.org/#>
   PREFIX rdf: <http://www.w3.org/1999/02/22-**rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>
   GRAPH :g1 { :a :b 1 }
D2:
   PREFIX : <http://example.org/#>
   PREFIX rdf: <http://www.w3.org/1999/02/22-**rdf-syntax-ns#<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>
   GRAPH :g1 { :a :b 2 }
Is the pair, taken together, inconsistent?    Or does the pair simply entail
   GRAPH :g1 { :a :b 1,2 }
?

The latter.  Given the open world assumption I don't see how to get to
inconsistency.

If you want to say that the label IRI of a labeled graph is somehow
associated with the triples contained in the labeled graph you'd have to
introduce an implicit universal quantification but that doesn't seem like
an insumountable problem.

-Gregg

Received on Tuesday, 10 September 2013 02:38:37 UTC