On Thu, 4 May 2000, Sergey Melnik wrote:
> Instead of associating semantics with URIs one could state it
> explicitly:
>
> book1 --author--> var:....
>
> would become
>
> book1 --author--> whatever_URI
> whatever_URI --rdf:type--> rdf:Anonymous
>
Interesting approach, but I don't think that quite works. We really
shouldn't be calling these "anonymous resources" as that leads us to
think that the resource itself is intrinsically nameless. That habit leads
us to solutions such as yours, which suggest that the anonymity is a
property of the resource, rather than of some mention or description of
the resource. Since I don't think anonymity is a property of the resource,
your proposal expresses exactly what I'm disagreeing with!
I argued a similar point last month:
http://lists.w3.org/Archives/Public/www-rdf-interest/2000Apr/0022.html
excerpt:
> Sometimes we don't know the commonly agreed ID for some entity, but
> nevertheless write some RDF statements that mention it in passing. When
> we send someone an RDF model and lack such URIs (sometimes because of
> partial knowledge; sometimes because social process
> doesn't exist to give uncontroversial URIs to these entitites) we still
> need to represent those entities in some kind of data structure.
>
> So these are the so-called 'anonymous resources'. I really think this is a
> bad name; it suggests that the anonymity is in some way intrinsic to the
> resource. That's not the case: rather, some 'mention' of that resource is
> anonymous in that we happen not to name the resource on that occasion.
I agree with you that associating semantics with special URI schemes for
use with RDF isn't a great solution, but feel the analogy with variables
makes this worthy of some investigation.
RDF's world consists solely of Web-nameable resources (things for which
the notion of identity makes sense, and which may/might/can have URIs) and
un-nameable (intrinsically anonymous??) literal strings. RDF applications
that express queries, inference rules etc. typically add to this some
notion of a variable. eg. TimBL's DesignIssues work
(eg. http://www.w3.org/DesignIssues/Toolbox.html) makes a stab at doing
this.
Anyone representing rules/queries over RDF content (and hence
using variables) needs to decide whether those data structures will
themselves have a representation in the RDF 1.0 Model, or whether they'll be
inexpressible in the core model and be represented in a superset of RDF
1.0 that has an explicit notion of variables. As Tim says in the Toolbox
doc. (discussing NOT, rather than variables, but general point holds)...
'As RDF has little power at its basic level, anything new has to be
introduced by reification - by describing it in RDF. Hence, to say
"not(node, property, value)", you have to say, for example, "there is
something which is an RDF property and has a subject of A and whose B
property has vale C and is false". '
So if I want to represent variables within an RDF context, we either
find a hack that appeals (eg. "var:" IDs) or admit that certain things are
not elegantly represented in base RDF (although of course they can be
"tunnelled through" the RDF triples model, ie. quoted
but not understood by most 1.0 processors).
I've seen quite a few systems tunnel rules (containing variables) over
RDF, eg. Jos De Roo's work (ftp://windsor.agfa.be/outgoing/RCEI/NET/euler/index.html)
which lead me to suggest that the anonymous node problem and the
tunnelling-data-containing-variables-through-RDF problem are two views of
the same issue. In both cases, we need to represent to machines the fact
that we don't know the Web names for various entities, but nevertheless
know some other things about them. Whether the definition of URI/Resource
is broad enough to be used for variables is an interesting
(religious?) question. Reading RFC2396 I'm inclined to suggest that this
is acceptable:
Excerpted from related thread at
http://lists.w3.org/Archives/Public/www-rdf-interest/2000Mar/0028.html
the RFC tells us...
i) A Uniform Resource Identifier (URI) is a compact string of characters
for identifying an abstract or physical resource.
ii) A resource can be anything that has identity.
and in particular this rather cryptic paragraph:
iii)
The resource is the conceptual mapping to an entity or set of
entities, not necessarily the entity which corresponds to that
mapping at any particular instance in time. Thus, a resource
can remain constant even when its content---the entities to
which it currently corresponds---changes over time, provided
that the conceptual mapping is not changed in the process.
Now this in particular sounds to me a lot like our current problem...
Dan
--
mailto:danbri@w3.org