Re: Is there a systematic method for naming bnodes?

On 2010-10-04, Pat Hayes wrote:

>> When it appears that correct interpretation would be "Bob knows a 
>> person call Nathan and Sue knows a person called Nathan"
>
> No, because those three triples share a single bnode. Draw the actual 
> RDF graph and this will be clear.

Yes. To wit, this latter interpretation would indeed be encoded as:

_:x1 rdf:type ex:Person ; rdfs:label "Nathan"@en .
:Bob :knows _:x1 .

_:x2 rdf:type ex:Person ; rdfs:label "Nathan"@en .
:Sue :knows _:x2 .

Whether or not you could then conflate _:x1 and _:x2 would depend on 
further inferencing. With this data alone you couldn't do it; you'd have 
two, possibly different (or maybe same, you dunno) persons called 
"Nathan", and you'd be done with it. If on the other hand they both had 
a unique property (in the DAML+OIL/OWL sense) with an identical object, 
then you could leanify from this into the original graph with "the 
single shared person called 'Nathan'".

>> And in the case where the person they know is the same person called 
>> Nathan, then to give that person a proper name, a URI reference.
>>
>> I guess, more tersely, should a blank node reference '_:' ever appear 
>> more than once in the object position of a triple?
>
> Yes, sure.

To amplify, it's totally symmetrical, here. I mean, quite certainly 
you'd want to distinguish between:

:Sue :married _:x1 .
_:x1 rdf:label "Ellen" .

:Richie :married _:x2 .
_:x2 rdf:label "Ellen" .

and OTOH:

:Sue :married _:x1 .
:Richie :married _:x1 .
_:x1 rdf:label "Ellen" .


Pat, tell me if you disagree, but I think it's often useful to think 
about

:x1 something1 something2.

as being equivalent to

_:x1 something1 something2; someschema:uri <x1>.

where someschema:uri is a unique property.

That is to say, a normal node is logically speaking exactly the same as 
a blank node decorated with a canonical, publicly visible URI, using a 
predicate that is also unique. The mechanics are a bit more involved of 
course, but semantically speaking that's what the two node types are 
trying to express: the difference between a shared, unambiguous name for 
an entity (of which there might be many), and OTOH the necessity of 
referring to the object via its properties alone (which in FOPL takes an 
existential quantifier to bind a variable to the predicates it 
satisfies).
-- 
Sampo Syreeni, aka decoy - decoy@iki.fi, http://decoy.iki.fi/front
+358-50-5756111, 025E D175 ABE5 027C 9494 EEB0 E090 8BA9 0509 85C2

Received on Monday, 4 October 2010 19:40:52 UTC