- From: Thomas B. Passin <tpassin@comcast.net>
- Date: Thu, 08 Apr 2004 15:57:47 -0400
- To: public-sw-meaning@w3c.org
John Black wrote:
>>From: Thomas B. Passin
>
> If you are saying that the Resource and my meaning are equivalent, and
> thus that the URI stands for my meaning, this would make sense.
From rfc 2396 -
"A Uniform Resource Identifier (URI) is a compact string of characters
for identifying an abstract or physical resource."
RDF does not change this. Now an abstract resource could be a
"concept", and so a URI can be used to identify a concept. This is much
like a key in a hash table, and in fact that could be an actual method
of implementing a lookup in an application.
As to the "meaning" of one of those concepts, well, of course, that is
much trickier. You probably can never quite get your notion of what the
concept "means" to me in all its full glory, even if you explain for
hours. So you have to tailor how much of that "meaning" you need
someone or something to work with.
For Web (and Semantic Web) use, we may try to go farther and hook up the
URI to some information that attempts to explain it.
So I would say that the URI stands for (really: identifies) your
_concept_, but the "meaning" of the concept is another question. The
URI is there to try to give a globally unique name or label, and with
luck or by design to be more useful by pointing to more information.
> Otherwise,
> this doesn't work. I want my URIs to stand for what I intend to mean by
> them.
Fine - you publish the URI, it stands for whatever concept you want -
but now you have to impart to the user (human or otherwise) enough about
that concept so that it can be used correctly. But people always end up
using things differently or misunderstanding, and you can't stop that
altogether, no matter what you say or publish. You can just hope to
keep it under control when your purposes are involved.
> But even so, I also want to know how the intelligent agents that
> receive the URIs in my RDF messages will correctly interpret my URIs
> and understand what I intended to signify by them. How do I do that?
>
With general purpose code? Maybe you can't. Depends on what you what
the agents to do, doesn't it? What's different from the work you said
you did - say the Prolog work - is not RDF, OWL, or URIs, but the open
nature of the Web. Otherwise, everything you already know still
applies. You know how to get a Prolog program to "understand" certain
data in the sense that it will do the intended processing. That hasn't
changed.
WIth RDF/OWL/etc we have some ability to get beyond the specific design
of a single program, which is a step beyond a Prolog or C or whatever
program doing custom parsing or reasoning. But if you expect a computer
to turn on a light because you issued an RDF statement saying that the
state of the light is ON, obviously that won't happen unless you write
code to make it happen (and interface the machine to the light). The RDF
acts as a generalized way to capture state, so you don't need custom
code to learn what the state is, but to use it, you probably still need
custom code.
> Now we are implementing a system that does not have that condition.
> It is created by vast numbers of different people from around the
> world. And we are planning to have lots of nodes on this wide network
> share documents with each other.
Right, that is the open world nature of the beast. Nasty, and exhilarating.
This is where the logicians on the RDF team got clever - or where they
came up with a way to try to dance around the issues, take your pick. I
mean the matter of "interpretation". Plain folks like me tend to think
of an RDF data set as being pretty much like a database, where you know
what each field is for. But in reality, every concept requires a heck
of a lot of context to really grasp and apply.
That context is likely to be missing much of the time. So now we have
the notion of "interpretation" in which a "fact" could be regarded in
many ways, as long as they are all consistent with the state of the
world as it is known.
Example -
"John in standing in front of his house."
John could be a male human, but also a female human or a male dog, or
many other things. If we know nothing else, we cannot figure out which
one is "meant". We can only know that the RDF representing the sentence
is consistent with any of the above. Similarly, "house" might actually
mean a dog hous in the back yard, a doll house in he basebent, or who
knows what else. All perfectly good interpretations, all consistent
with the data we have which in the case is just the one sentence.
Now add a new sentence -
"John is a dog."
Assume that we have used a URI for "John" so we know the same "John" is
meant in both cases. If we also know that a "dog" is not a "human", we
can remove some of those previously tenable interpretations, since they
would no longer be consistent with the data set.
The point? Instead of worrying about the "meaning", the art seems to be
to wittle away at the set of feasible interpretations until the
surviving set is consistent with what you intend, or at least with what
you need to accomplish. The more data built into your code, the less
whittling you have to do in the RDF/OWL/whatever. If your code knows
nothing, you have to do a lot of whittling.
This is pretty foreign thinking for me, and I have not really digested
it yet in a working (as opposed to a conceptual) way.
I think it is time for someone who knows this stuff better than I to
give some fairly concrete illustrations of how it might work in practice.
Anyone? Pat?
Cheers,
Tom P
Received on Thursday, 8 April 2004 15:54:10 UTC