W3C home > Mailing lists > Public > semantic-web@w3.org > December 2012

Re: Well Behaved RDF - Taming Blank Nodes, etc.

From: Pat Hayes <phayes@ihmc.us>
Date: Thu, 13 Dec 2012 22:21:52 -0800
Cc: semantic-web@w3.org
Message-Id: <5B7C85F6-D98A-40E2-86CF-4E86705273B0@ihmc.us>
To: Ivan Shmakov <oneingray@gmail.com>

On Dec 13, 2012, at 9:39 AM, Ivan Shmakov wrote:

>>>>>> David Booth <david@dbooth.org> writes:
>>>>>> On Thu, 2012-12-13 at 01:04 +0700, Ivan Shmakov wrote:
>>>>>> David Booth <david@dbooth.org> writes:
> 
> […]
> 
>>>> A Well-Behaved RDF graph is an RDF graph that can be serialized as
>>>> Turtle without the use of explicit blank node identifiers.  I. e.,
>>>> only blank nodes that are implicitly created by the bracket "[
>>>> ... ]" or list "( ... )" notations are permitted.
> 
>>> My suggestion would be to only disallow cycles composed entirely of
>>> blank nodes.
> 
>>> As it seems, an RDF graph following this restriction could be
>>> “canonicalized” quite easily, . . . .
> 
>> Yes, that is pretty much my intent, but I thought it would be easier
>> to explain (to casual RDF authors) by defining it in terms of
>> avoiding the need for explicit blank node identifiers in Turtle.
>> Otherwise we would have to get into the details of defining what is a
>> blank node tree and how it relates to the RDF graph, which seemed
>> harder to explain.  But I could be wrong.
> 
> 	The question is: how do we state that two nodes relate to a
> 	single blank node?  Say, :john and :mary are siblings, thus
> 	their :mother and :father are two same :Person's.  (Though
> 	perhaps such a case — that there /may/ be blank node
> 	identifiers, provided that they're only referenced as Objects
> 	for the arcs with a non-blank Subject — may be formulated as an
> 	exception to the “no blank node identifiers” rule?)
> 
> 	But I've got the point.  Indeed, for my own needs, I've
> 	contemplated “weakening” graphs like the following one:
> 
> _:father a :Person .
> :john  :father _:father .
> :marth :father _:father .
> 
> 	down to (the Well-Behaved):
> 
> :john  :father [ a :Person ] .
> :marth :father [ a :Person ] .
> 
> 	There's a sure loss of information in treating the former graph
> 	as if it was the latter,

Damn right. The former, but not the latter, asserts that john and marth are siblings. There are plenty of use cases where this is, to put it mildly, of some practical importance. 

Pat

> but somehow, it seems that not only it
> 	makes the thing easier to explain, but also may further simplify
> 	the data management.  (For instance, if no blank node is ever
> 	allowed to be the “same” as another, one could use content-based
> 	identifiers for all the blank nodes, never ever having to decide
> 	whether this is the same [ a :Person ] or not.)
> 
> 	And for the task I've been considering it for, the information
> 	lost was likely to be insignificant anyway, as for every other
> 	use there was to be a URI (either a freshly-minted urn:uuid:
> 	one, or some other.)
> 
> -- 
> FSF associate member #7257
> 
> 
> 

------------------------------------------------------------
IHMC                                     (850)434 8903 or (650)494 3973   
40 South Alcaniz St.           (850)202 4416   office
Pensacola                            (850)202 4440   fax
FL 32502                              (850)291 0667   mobile
phayesAT-SIGNihmc.us       http://www.ihmc.us/users/phayes
Received on Friday, 14 December 2012 06:22:22 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:38 UTC