- From: Richard H. McCullough <rhm@cdepot.net>
- Date: Wed, 13 Nov 2002 08:57:03 -0800
- To: <MDaconta@aol.com>, <fmanola@mitre.org>, <www-rdf-interest@w3.org>
- Message-ID: <000b01c28b35$b12d78b0$bd7ba8c0@rhm8200>
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?
Thanks,
- Mike
----------------------------------------------------
Michael C. Daconta
Director, Web & Technology Services
www.mcbrad.com
Received on Wednesday, 13 November 2002 11:57:08 UTC