W3C home > Mailing lists > Public > www-rdf-interest@w3.org > November 2002

Re: The semantics of blank nodes

From: Richard H. McCullough <rhm@cdepot.net>
Date: Wed, 13 Nov 2002 08:57:03 -0800
Message-ID: <000b01c28b35$b12d78b0$bd7ba8c0@rhm8200>
To: <MDaconta@aol.com>, <fmanola@mitre.org>, <www-rdf-interest@w3.org>
My web site (click on "knowledge" below my name) has lots of examples of statements about instances and Classes.
The examples are written in the KR language, which is even
more English-like than N3.
My examples use the terminology of epistemology instead of AI.  The key identities are:
existent is Thing
entity is Class
attribute is Property
enumeration is Alt
multiset is Bag
list is Seq
Dick McCullough 
knowledge := man do identify od existent done
knowledge haspart list of proposition

  ----- Original Message ----- 
  From: MDaconta@aol.com 
  To: fmanola@mitre.org ; www-rdf-interest@w3.org 
  Sent: Wednesday, November 13, 2002 8:16 AM
  Subject: Re: The semantics of blank nodes

  Hi Frank,

  Thanks for the response.  I will try and express the point better...

  In a message dated 11/13/2002 5:38:14 AM US Mountain Standard Time, fmanola@mitre.org writes:

    I'm not sure I fully understand your point.  At the moment, as you say, 
    the structure of the example is:

    <Staff Member> <address> <blank node>
    <blank node> <street> "1501 Grant Avenue"

    whereas you're suggesting it should be

    <Staff Member> <livesAt> <Address>
    <Address> <street> "1501 Grant Avenue"

    However, it seems to me that all you've done is changed the name of the 
    predicate.  The changed name for the predicate may, to some people, 
    convey the semantics in English more accurately (it could also have been 
    "hasAddress"), but the semantics seem to me to be exactly the same:  the 
    blank node represents an address, which has various properties itself 
    (street, and so on).  In other words, it seems to me that the example 
    could just as easily have been written, using your predicate name:

  The point I disagree with above is when you say, "the blank node 
  represents an address" because no where do we connect it with
  the concept (or Class) "Address".  As you say below,
  this could be resolved if we specify a type and then that clears up the
  semantic confusion.  I would guess that a blank node then really just
  means "thing" (unless we type it).

    <Staff Member> <livesAt> <blank node>
    <blank node> <street> "1501 Grant Avenue"

    with the exact same semantics.

    The only difference between this and what you've suggested seems to be 
    that in your example, the object of the first statement is <Address>, 
    which I presume means it has a URI (and possibly that it has a type such 
    as "Address"). But the point of the example was an assumption that you 
    for some reason *didn't* want to assign the address a URI (you could 
    have given the blank node a type if you wanted).  In other words, use of 
    a blank node here isn't as much a semantic issue as it is a matter of 
    URI management.  If you want to assign everything a URI, that's cool, 
    but I don't think it changes the structure of the model.  Perhaps I'm 
    not understanding your point?

  My point was that an un-typed blank node is semantically ambiguous.
  I think the solution is to type the blank node.  I still am not 100% clear on 
  the best practices for modeling statements about instances versus statements 
  about classes of things.  I may need to work on some more examples ... if 
  you know any good references that talk about this distinction please let me know.

  Just to close the loop, then to assign the type to the blank node I 
  would use rdf:type with the resource being a previously defined 
  <rdfs:Class rdf:about="#Address">  right?


  - Mike
  Michael C. Daconta
  Director, Web & Technology Services
Received on Wednesday, 13 November 2002 11:57:08 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:07:43 UTC