- From: Stefan Kokkelink <skokkeli@mathematik.uni-osnabrueck.de>
- Date: Thu, 08 Mar 2001 15:15:56 +0100
- To: Lee Jonas <lee.jonas@cakehouse.co.uk>
- CC: Aaron Swartz <aswartz@swartzfam.com>, RDF interest group <www-rdf-interest@w3.org>
Lee Jonas,
I completely agree with your interpretation of
anonymous resources! But this has some consequences
for (valid) manipulations of RDF models, see [1]
for an example. And there are other points that
need clarification. Let's do some odd things ;-) :
<rdfs:Property>
<rdfs:subPropertyOf>
<rdfs:Property>
<rdfs:subPropertyOf>
<rdfs:Property/>
</rdfs:subPropertyOf>
</rdfs:Property>
</rdfs:subPropertyOf>
</rdfs:Property>
According to RDF Schema this leads to the conclusion
that the first Property is also subPropertyOf the
third one. But: you can't express this fact in the
XML serialization (although you are the owner of
the data).
I agree with Brian (great paper!): 'It is unfortunate
that the XML serialization defined for RDF does not
permit the representation of all possible
graphs containing anonymous resources.' (Section 2.2)
I think this is a bug in the RDF serialization. Perhaps
the serialization should provide an 'rdf:anonymous_ID'
attribute in addition to rdf:ID. rdf:ID specifies
an URI, rdf:anonymous_ID a local identifier that is
allowed to be changed (more precisely: mapped one
to one) by an RDF application (e.g.
parser) processing the data. And this identifier should
not be interpreted as a URI, it's private data!
Greetings,
Stefan
[1]
http://lists.w3.org/Archives/Public/www-rdf-interest/2000Aug/0161.html
Lee Jonas wrote:
>
> This is my interpretation of anonymous resources, others will undoubtedly
> disagree.
>
> IMHO *anonymous* means "without a name".
>
> I believe the intention of the RDF spec is that anonymous resources are
> useful within the document fragment they are used, and are not referable
> outside of that scope. If that is the behaviour you want, you would have to
> specify a "name" (i.e. URI) and it would no longer be anonymous. Hence I
> believe that the mere act of describing anonymous resources does _not_ give
> them a name.
>
> Justification:
>
> Think of the RDF model forming a conceptual directed labelled graph. Nodes
> (Resources and Literals) are linked by labelled Arcs (Statements).
> Regardless of whether the graph is stored directly as such in data
> structures or not, it is useful to think of the nature of RDF model in this
> way.
>
> Within this framework, an anonymous resource is simply a node without a name
> that serves to link other resources with names in useful patterns - e.g. a
> named Resource with a property, which refers to a qualified value (the
> anonymous resource provides the necessary level of indirection to allow the
> association of the actual value with its qualifiers).
>
> Now, parsers reconstitute this conceptual directed labelled graph (RDF
> model) from a serial text stream (e.g. RDF syntax, N3, etc) by emitting arcs
> (Statements) in triple form. This poses a problem for describing the arcs
> to / from anonymous resources within the conceptual graph. The description
> of the above example as triples would be:
>
> Subject Predicate Object
> ===============================================
> resource, property, anon_resource
> anon_resource, rdf:value, value
> anon_resource, qual_prop1, qual_resource1
> anon_resource, qual_prop2, qual_resource2
> ...
>
> How does a parser ensure the application knows that each of the four
> statements above refer to the same anonymous resource? The answer is to
> generate a temporary name for it. However, that is the sole purpose of the
> temporary name and its scope should be restricted to the group of triples
> outlined above. Attempts to refer to it externally as
> file://C:\Test\RDF\q.rdf#genid1 is incorrect as genid1 would be "out of
> scope".
>
> As an aside, XPointer poses an interesting question - should you be able to
> refer to an anonymous resource as file://C:\Test\RDF\q.rdf#xpointer(1,1,1)
> (or whatever the syntax is)? This implies that the serialised form of the
> description element describing the anonymous resource can be referenced.
> However in pure RDF model terms, the description is not the same thing as
> the nameless resource described. It could be argued either way. In a
> purist sense you cannot reference anonymous resources this way, however
> practical concerns may (just) warrant relaxing this stance and allowing it.
> For example, to allow "3rd party" references to anonymous resources (where
> you don't have control over the anonymous resource yourself). I remain
> unconvinced so far.
>
> AFAIK, SiRPAC does not inform the application specifically that a resource
> is anonymous - this is a problem. David Megginson's RDF Filter extends the
> notion of the triple to provide some additional information to the
> application - from memory, a different method in the appilcation is called
> depending on whether the resource is anonymous or not.
>
> Regards
>
> Lee Jonas
>
> -----Original Message-----
> From: Stefan Kokkelink [mailto:skokkeli@mathematik.uni-osnabrueck.de]
> Sent: 08 March 2001 11:27
> To: Aaron Swartz
> Cc: RDF interest group
> Subject: Again: Anonymous Resources
>
> Hi Aaron,
>
> moving this to RDF-IG, might me interesting for the
> group ...
>
> Aaron:
>
> > >Umm. All resources have URIs -- that's their definition, I believe.
>
> Stefan:
>
> > > No: every resource *can* have a URI. In my opinion it would be a hard
> > > restriction to RDF if one could only decribe resources that have a name
> ...
> > > There are many things in the world that don't have names.
>
> Aaron:
>
> > Perhaps, but the act of describing them gives them a name. i.e. the first
> > thing you described in file://C:\Test\RDF\q.rdf would usually be known as
> > file://C:\Test\RDF\q.rdf#genid1 -- how does CARA deal with this? SiRPAC
> and
> > other programs I've used make up URIs like the one above for anonymous
> > nodes.
>
> Yes, but this raises some problems. For example try the
> following code in SiRPAC [1]:
>
> <?xml version="1.0"?>
> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> xmlns:dc="http://purl.org/dc/elements/1.1/">
> <rdf:Description>
> <dc:type>animal</dc:type>
> </rdf:Description>
> <rdf:Description about="online:#genid1">
> <dc:type>no, only an anonymous resource</dc:type>
> </rdf:Description>
> </rdf:RDF>
>
> I don't think this is a specific problem in SiRPAC. You always have
> this problem when trying to calculate a URI for an anonymous
> resource.
>
> (Note: If you use CARA [2] you should use the GraphViz visualization to
> look at the RDF graph. The (default) triple representation is
> broken!)
>
> If we really want that anonymous resources are given URIs by parsers
> we need to define a special URI scheme for these (no longer ;-)
> 'anonymous' resources and a well-defined algorithm how parsers
> should calculate these URIs from the XML serialization.
>
> (But this is not easy: we would have to ensure that anonymous resources
> from
> different RDF files get *different* URIs!. Otherwise it becomes almost
> impossible to join RDF graphs in a meaningful way. One advantage of
> anonymous resources is that they are not glued with other resources
> when joining graphs!)
>
> Currently, we don't have such a scheme defined
> in the RDF specification nor an algorithm to calculate
> these URIs.
>
> Perhaps RDFCore should try to clarify things.
>
> Personally I think it is a bad idea to require everything we want
> to decribe with RDF to have a name. (Humans don't do this: we often
> decribe things by the properties they have.) That would raise a lot
> of problems ...
>
> Greetings,
> Stefan
>
> [1] http://www.w3.org/RDF/Implementations/SiRPAC/
> [2] http://zoe.mathematik.Uni-Osnabrueck.DE/RDF/parser.html
Received on Thursday, 8 March 2001 09:16:25 UTC