- From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
- Date: Fri, 01 Oct 2004 08:49:44 -0400 (EDT)
- To: Patrick.Stickler@nokia.com
- Cc: www-rdf-interest@w3.org
From: <Patrick.Stickler@nokia.com>
Subject: RE: problems with concise bounded descriptions
Date: Fri, 1 Oct 2004 14:18:41 +0300
>
>
> > -----Original Message-----
> > From: www-rdf-interest-request@w3.org
> > [mailto:www-rdf-interest-request@w3.org]On Behalf Of ext Peter F.
> > Patel-Schneider
> > Sent: 01 October, 2004 02:40
> > To: www-rdf-interest@w3.org
> > Subject: problems with concise bounded descriptions
[...]
> > The notion of Concise Bounded Descriptions (CBD) in this note
> > has a number
> > of problems.
>
> No doubt. I'm always keen to fix problems.
>
> > The initial description of a CBD is severely underspecified.
> > According to
> > the note, ``A [CBD] of a resource is a body of knowledge about that
> > resource which does not include any explicit knowledge about any other
> > resource which can be obtained separately from the same source.''
> >
> > Problem 1: Which source?
>
> The source of statements (graph) from which the CBD is being extracted.
OK, but why is this not stated here?
> > Problem 2: What is ``explicit'' knowledge?
>
> As in "information which is explicit and formally defined", i.e.
> not in the mind of some human or expressed in a manner, such
> as using natural language, which requires a human to interpret
> to figure out, and may give rise to ambiguity, but rather
> "expressed in a machine understandable language" such as can
> be used by automated semantic web agents.
OK, this is a good definition of explicit, but why is this not stated?
Also, this clarification of ```explicit'' exposes further problems.
Consider the RDF graph consisting of a single statement
ex:a ex:r ex:b .
Why is this statement not ``explicit kowledge about [another] resource
which can be obtained separately from the same source''? There is no
reason not to postulate that the source cannot answer questions like
``return all the triples with ex:b as the object''.
> > Problem 3: What is ``obtain separately''?
>
> By separate request/query.
OK, but why is this not stated here?
> > Problem 4: A function that always returns nothing satisfies this
> > description, as it certainly does not include any knowledge
> > (explicit or
> > not) that be obtained (separately or not) from the same
> > source (or indeed
> > any source at all).
>
> I'm sorry. I don't see your point here.
>
> If the agent recieving the request knows nothing about the
> resource in question, then returning an empty graph is a
> pretty clear indication of that.
The point is that according to your rules, as expressed in your initial
description of a CBD, my process is in every way better than yours.
First, my process actually satisfies your initial description of a CBD
whereas your does not. Second, my process is optimal in that it returns
the minimum CBD, whereas you don't give any criteria for determining the
optimally of your process.
> > The definition of CBD in terms of a procedure on RDF graphs also has
> > serious problems.
>
> If it does, then for sure, those should be addressed.
>
> > Problem 5: Given a node in an RDF graph, there is no general way of
> > determining which nodes in the graph are co-denotational with
> > that node.
>
> Hmmmm.. isn't that what owl:sameAs is for?
Not at all. owl:sameAs tells you that two nodes in a graph are
co-denotational. However the absence of owl:sameAs does not tell you that
two nodes in a graph are not co-denotational.
Consider the following RDF graph:
ex:a ex:r ex:b .
Are ex:a and ex:b co-denotational?
> There is no reason why an agent cannot employ inference when
> responding to a request for a CBD -- and in fact, this is
> precisely what the Nokia Semantic Web Server does, though
> not full OWL inference (yet).
Irrelevant, see above.
> The graph from which a CBD is extracted, can be one which
> contains inferred statements, and need not corrspond to the
> graph corresponding to a particular triples store.
Irrelevant, see above.
> > Consider, for example, the RDF graph:
> > _:a ex:b _:c .
> > _:d ex:e _:f .
> > What is the CBD of _:a in this graph?
>
> _:a ex:b _:c .
>
> Exactly where is the confusion? How would you expect it to be
> different?
>
> I see no statements that would suggest that any of the
> nodes in the above example graph are co-denotational
> with any other.
>
> Am I missing something?
Yes, indeed, you certainly are. There is, of course, nothing in the graph
to say that any of the nodes in the graph are co-denotational, but there is
also nothing in the graph to say that they are not. Given this
uncertainty, why should the CBD of _:a *not* include
_:d ex:e _:f .
> > Problem 6: This definition does not satisfy the initial
> > description of a
> > CBD. Consider, for example, the RDF graph:
> > ex:a ex:b ex:c .
> > ex:r rdf:type rdf:Statement .
> > ex:r rdf:subject ex:a .
> > ex:r rdf:predicate ex:b .
> > ex:r rdf:object ex:c .
> > the CBD of ex:a in this graph is the graph itself, but it
> > includes explicit
> > information about ex:r, a potentially different resource.
>
> OK. I can see a minor issue with some of the wording in that
> it states that no other named resources will be described in
> the CBD (presuming that reification resources are anonymous,
> rather than named) but as the core of the algorithm is quite
> clear about reification resources, this is a minor editorial
> issue (that I will address).
Fine. That may solve this particular example. What about the issues
uncovered by your clarification of ``explicit'' above?
> > Problem 7: This definition does not provide enough information to
> > distinguish the node from other distinguishable nodes in the graph.
> > Consider, for example, the RDF graph:
> > ex:r rdf:type owl:InverseFunctionalProperty .
> > _:a ex:r _:b .
> > _:b ex:r _:a .
> > _:a ex:s "NODE A" .
> > _:b ex:s "NODE B" .
> > Then the CBD of _:a in this graph is
> > _:x1 ex:r _:x2 .
> > _:x2 ex:r _:x1 .
> > which is the same as the CBD of _:b in this graph but _:a and _:b are
> > distinguishable in the graph and thus should have different CBDs.
>
> Well, firstly, while it is possible to obtain a CBD of
> an anonymous node, the focus of a CBD is a resource
> denoted by a URIref (not that I see that it's significant
> to this, or any of these, examples).
I don't see any reason to restrict CBDs to URIrefs. In fact, the greatest
need I see is for some way of returning the information a source knows
about an anonymous node in a graph, as in
Return the information about the instances of foaf:Person.
This will need to return information about any blank nodes that have
rdf:type foaf:Person.
> I.e. the beginning point for the extraction of the
> CBD by the responding agent, posessing the knowledge
> in question, is a graph node, but the request from
> one agent to another can only be made in terms of
> a URIref.
This would result in a drastic decrease in utility.
> This probably could be made clearer in the CBD spec.
>
> Secondly, The CBD of _:a, in the context of the agent
> recieving/responding to the request would be
>
> _:a ex:r _:b .
> _:b ex:r _:a .
> _:a ex:s "NODE A" .
> _:b ex:s "NODE B" .
>
> which, yes, entails
Entails? Where did this come from?
>
> _:x1 ex:r _:x2 .
> _:x2 ex:r _:x1 .
> _:x1 ex:s "NODE A" .
> _:x2 ex:s "NODE B" .
Hmm. In some sense we are both wrong here. The CBD of :_a is either
_:x1 ex:r _:x2 .
_:x2 ex:r _:x1 .
_:x1 ex:s "NODE A" .
(if you take ``include only'' to trump ``include all'') or
_:x1 ex:r _:x2 .
_:x2 ex:r _:x1 .
(if you don't). I took the former reading, which is probably not as
reasonable as the latter.
However, there is no way that
_:x2 ex:s "NODE B" .
is in the CBD of _:a, because _:b is the subject of a statement ``where the
predicate is an owl:InverseFunctionalProperty''.
> neither of which are not going to be particularly useful
> to any requesting agent since (a) it couldn't
> ask for the CBD of a resource denoted (solely)
> by an anonymous node in some other agent's
> knowledge base (since anonymous node labels are
> system, and hence agent, local) and (b) even
> if the agent was somehow able to make the request
> (which it couldn't) it wouldn't know which anonymous
> node(s) in the response actually denote the resource
> of interest.
See above. The CBD of a blank node is probably of more utility than the
CBD of a URIref node.
However, a slight expansion of my example gives rise to the same problem
without taking the CBD of a blank node.
Consider the following graph:
ex:z ex:p _:a .
ex:r rdf:type owl:InverseFunctionalProperty .
_:a ex:r _:b .
_:b ex:r _:a .
_:a ex:s "NODE A" .
_:b ex:s "NODE B" .
The CBD of ex:z in this graph is
ex:z ex:p _:x1 .
_:x1 ex:r _:x2 .
_:x2 ex:r _:x1 .
which does not provide sufficient information to extract all the
information the server knows about ex:z.
> Patrick
Peter F. Patel-Schneider
Bell Labs Research
Received on Friday, 1 October 2004 12:43:56 UTC