W3C home > Mailing lists > Public > www-archive@w3.org > June 2004

Re: [Fwd: Some questions about Named Graphs]

From: Pat Hayes <phayes@ihmc.us>
Date: Mon, 28 Jun 2004 10:35:57 -0500
Message-Id: <p06001f0abd05e53ac019@[]>
To: Yuzhong Qu <yzqu@seu.edu.cn>
Cc: Jeremy Carroll <jjc@hplb.hpl.hp.com>, Chris Bizer <chris@bizer.de>, Pat Hayes <phayes@ihmc.us>, Patrick Stickler <patrick.stickler@nokia.com>, www-archive@w3.org
>We had comment from Yuzhong ... he agreed that we could answer on
>I'll send my reply, other comments welcome.

See below.

>-------- Original Message --------
>From: Yuzhong Qu <yzqu@seu.edu.cn>
>To: <Jeremy_Carroll@hp.com>, <chris@bizer.de>
>Subject: Some questions about Named Graphs
>Date: Mon, 28 Jun 2004 18:12:09 +0800
>Dear Jeremy and Christian,
>I found the paper entitled "Named Graphs, Provenance and Trust" is
>terrific good.
>Some questions arised when I read the section 2 "Abstract Syntax and
>Semantics" of this paper.
>1. 5-tuple <N,V,U,B,L> where: U is a "set" of URIrefs; L is a "set" of
>literals (both plain and typed); B is a "set" of 'blank' nodes; ......;N
>is a "set" of pairs forming a partial function from U to V ~ U ~ V .
>    Are they finite sets? I guess they should be.

That would be usual when describing a syntax, for 
sure, but there are some cases where it might be 
sensible to allow (countably) infinite graphs, eg 
when one has some procedure which can match an 
infinite range of graphs and therefore can be 
thought of as embodying an infinite virtual 
graph. Such cases arise when one considers 
question-answering systems, for example. So it 
seemed best to just leave this possibility open 
by not imposing the finiteness condition, since 
we do not actually need it in any case.

>   As to "N is a set of pairs forming a partial function from U to V ~ U
>~ V", why not a partial function from U to P(V ~ U ~ V)? (The power set
>of ...) because you use "partial function" instead of "partial mapping".

Whoops. I think we noticed this at some point but 
it must have got edited back in by mistake.

>2. For ng, ng' belonging N with ng != ng'then the blank nodes used in
>triples from rdfgraph(ng) are all distinct from those used in triples
>from rdfgraph(ng'), i.e. blank nodes cannot be shared between different
>graphs named in N.
>What's the criteria to test ng = ng'?

Good question. Strictly speaking an RDF graph is 
a *set* of triples, so one ought to use set 
criteria of identity. But we 'cheated' slightly 
when writing the RDF spec, by saying that graphs 
which differ only in the identity of their blank 
nodes are treated as identical. In effect, this 
means that an RDF graph is (again speaking 
strictly) a factorization of the space of sets 
under the equivalence relation of being mutual 
instances. This makes it mathematically 
impossible for two graphs to 'share' a blank 
node, since the bnode in one graph can be 
instantiated by a different bnode without 
changing the identity of the graphs. Put less 
mathematically, bnodes are scoped to the graphs 
they occur in.

>I guess it depends on the equality
>of the first elements of the two pairs, i.e. whether or not name(ng) =
>name(ng'), then it depends on the equality of URIrefs?
>In addition, why you must require "the blank nodes used in triples from
>rdfgraph(ng) are all distinct from those used in triples from
>rdfgraph(ng')"?  I mean that the above requirement (or assumption) seems
>redundant. Even worse, in some cases, two blank nodes within two
>different graphs may be equal due to the fact that they have the same
>value for an inverse-functional dataProperty (in OWL), or the two blank
>nodes are equal to each other within some context.

Ah, be careful. Identity of blank nodes is a 
syntactic question. So one might have

_:x ex:revfunprop1 A .
_:y ex:revfunprop1 A .

and then

_:x owl:sameAs _;y .

but this means that the two blank nodes denote 
the same thing, not that they are the same blank 
node. You can see they are not the same blank 
node by looking at their nodeID labels (x and y).

The only way that two blank nodes can  be equal 
(actually this form of words is misleading, since 
if they are equal then there is only one blank 
node) is if they are (it is) in a single graph.

>3. Can a blank node denote a named graph (or graph)?
>    If it can, how about the corresponding syntax?
>4. As to the Namespace and RDF Schema:
>    The class "rdfg:Graph" is to represent the concept of named graph,
>graph, or other thing?
>    I guess it's about named graph, then why not use the word "NamedGraph"?

Because named graphs are RDF graphs (with a name 
added, but still RDF graphs all the same), rather 
than a distinct category of entity.

Thanks for your enthusiasm

Pat Hayes

IHMC	(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32501			(850)291 0667    cell
phayes@ihmc.us       http://www.ihmc.us/users/phayes
Received on Monday, 28 June 2004 11:36:02 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:32:31 UTC