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

[moved to www-archive and cc Pat for now]

On 09/16/2013 08:19 PM, Jeremy J Carroll wrote:
>
>
>
> On Sep 11, 2013, at 8:14 PM, Sandro Hawke <sandro@w3.org 
> <mailto:sandro@w3.org>> wrote:
>
>> On 09/11/2013 06:21 PM, Jeremy J Carroll wrote:
>>>
>>> This section defines a vocabulary item rdf:Graph in addition to 
>>> those in [RDF-SCHEMA].
>>> This is the class of resources that are RDF graphs. If a resource in 
>>> this class is identified by an IRI, and that IRI is used to name a 
>>> graph in a dataset, then within that dataset the resource SHOULD 
>>> correspond to the named graph.
>>
>> Does it not follow from this definition that:
>>
>> PREFIX :<http://example.org/#>
>> PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>    :g1 :p 1.
>>    :g1 a rdf:Graph.
>>    :g2 a rdf:Graph.
>> GRAPH :g1 { :a :b :c }
>> GRAPH :g2 { :a :b :c }
>> entails:
>>    :g2 :p 1.
>>
>> (assuming the "SHOULD" is taken as something we can count on) ?
>
>
> Hi Sandro
>
> this is an excellent question, and one that I takes motivates your 
> discussion of box-model on the WG mailing list.
>
> I am not very comfortable with a YES, but, given the text I suggested 
> a YES it would be.
>
> In essence I think I want an intensional semantics rather than an 
> extensional semantics, suggested text below; I start with 
> philosophical discussion.
>
> In maths, we typically refer to Sets with intensional semantics, in 
> RDF we refer to classes with extensional semantics.
>
> So if I have a class
>
> jjc:Friends rdf:type rdfs:Class ;
>       rdfs:comment "Jeremy's friends" .
>
> and also a class
>
> jjc:SandrosFriends rdfs:type rdfs:Class ;
>       rdfs:comment "Sandro's friends" .
>
> in the unlikely event that we have exactly the same friends, RDF 
> semantics does not confuse the intent.
>

I'm with you so far, sort of.

> A view would be that RDF Semantics achieves this by moving the 
> semantic intent more to the property rdf:type …
>

Really?  I haven't thought about this in a long time, but I think I 
axiomatized it easily enough for my rdfs reasoner back in 2003.

> So, we could scrub the idea of having a class, and instead define a 
> property.
>
> An alternative proposed modification, which clarifies my desired NO to 
> your entailment
>

This is a magic property, right?   It's not a normal property in the RDF 
semantics, something in the domain of IEXT, because if it were it would 
have extensional semantics....

> [[
> 3.7 The rdf:namesGraph property
>
> This section defines a vocabulary item rdf:namesGraph in addition to 
> those in [RDF-SCHEMA].
>
> rdf:namesGraph is an instance of rdf:Property that is used to state 
> that a resource is a name for a graph.
>
> A triple of the form:
>
> R rdf:namesGraph G
>
> states that G is an RDF graph and R is a name for the graph G.

In normal RDF semantics, the property has no access to the term R, just 
to I(R).    The truth of triple is unchanged if you replace the subject 
with a different subject denoting the some thing.    The truth of :a :b 
:c is the same as the truth of :a2 :b :c if I(:a) = I(:a2).

But rdf:namesGraph is special -- it somehow reaches around I and IEXT to 
get directly at the subject term itself....?

> If R is an IRI, and that IRI is used to name a graph in a dataset, 
> then within that dataset the resource G SHOULD correspond to the named 
> graph.
>

I don't understand why you keep using SHOULD.    I don't see semantics 
as the kind of place for SHOULDs.

> The rdfs:domain of rdf:namesGraph is rdfs:Resource. No rdfs:range is 
> specified.
> ]]
>
>
> ===
>
> With this my particular use case to add metadata about the graph as an 
> intensional as opposed to an extensional object would be addressed as 
> follows.
>
>      PREFIX : <http://example.org/#>
>      PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>      
>      GRAPH :g1 { :g1 rdf:namesGraph _:g ; rdfs:comment "An example graph" }

At first I thought you meant:

    GRAPH :g1 { :g1 rdf:namesGraph _:g. _:g rdfs:comment "An example
    graph" }


But now I see you don't actually want the comment on the graph, you want 
it on the "graph name" or something, so that it's not shared with other 
graphs that happen to be identical.

That is:

    :g1 :p 1.
    :gn1 :p 1.
    GRAPH :gn1 { :a :b :c }
    GRAPH :gn2 { :a :b :c }
    :gn1 rdf:namesGraph :g1
    :gn2 rdf:namesGraph :g2
entails
   :g2 :p 1    # since :g1 and :g2 both denote the same RDF Graph
but does NOT entail
   :gn2 :p 1
so you're okay with your metadata.

But, but ... in that case you don't need rdf:namesGraph at all. Since 
you're not actually using _:g, just put your properties on :gn1 and 
you're fine.

Does that not do what you want?   (True there's no semantic connection 
to the triples, but why do you need one?   Since you're not using _:g, I 
claim that means you don't need the rdf:namesGraph triple at all.)

     -- Sandro

>     
>
>
> Jeremy J Carroll
> Principal Architect
> Syapse, Inc.
>

Received on Tuesday, 17 September 2013 01:37:21 UTC