- From: Paul Prescod <paul@prescod.net>
- Date: Mon, 11 Nov 2002 12:24:57 -0800
- To: Tim Bray <tbray@textuality.com>, WWW-Tag <www-tag@w3.org>
Tim Bray wrote:
> ...
> I'm unconvinced that this really buys anything, but it's probably cheap
> to assert that this RDDL applies to namespace X; obviously you have to
> be able to claim to belong to more than one namespace.
Why?
> ... And it's hard to
> see what the harm is as long as the back-pointer isn't compulsory. So
> in RDF-speak, what's the triple? What has the property named
> "servesAsRDDLFor" whose value is some namespace name?
We must be talking past each other. What I want could probably be
handled just through a statement that RDDL documents SHOULD have an XML
Base declaration (assuming RDF knows what to do with it).
>...
> Well, if you think of a namespace as a resource then a RDDL is a
> representation of that resource, so that establishes one end of the
> relationship.
Not in a way that will be accessible to RDF processors. They have no
notion of the relationship between resource and representation, AFAIK.
> ... The RDDL then says that particular other resources have
> properties such as Nature and Purpose, their related-ness is inferred
> from their containment in the representation.
Once again, I don't see how a generic RDF processor will infer this. My
mental model is that I point a generic RDF processor at the namespace
document and then use it as a namespace-information database (perhaps
doing queries using a generic RDF query language). It shouldn't have to
know anything specific about RDDL anymore than my XML parser should have
to be programmed specifically to handle RDDL.
> ... At no point has RDDL ever
> built in syntax to assert the relationship of these resources to the
> namespace, since any reasonable person will point out that this can be
> inferred from its being in the representation of the namespace.
I'm not worried about people, I'm worried about machines. Machine
understanding is the *only* reason to use RDF instead of idiomatic XML
or even raw text. And of course I'm using "understanding" to mean rougly
"the ability to build graphs and draw inferences."
>...
> First of all check out one of Jonathan's sketches at
> http://www.rddl.org/RDDL2, which shows off some of his thinking. If I
> have something like (in N3)
>
> <> <http://www.rddl.org/purposes#schema-validation> <L.dtd>
>
> How do I infer that this is a purpose, especially if you cook up your
> own purposes like
>
> <> <http://prescod.net/purposes#transmogrify> <L.transmog>
Answer #1: Read the OWL ontology for RDF resources.
Answer #2: Add a thin layer of indirection.
@prefix : <http://www.prescod.net/sometargetns#>.
@prefix rddl: <http://www.rddl.org/>.
<http://www.prescod.net/sometargetns#>
has <rddl:resource> <#dtd>;
has <rddl:resource> <#relaxng>;
has <rddl:resource> <#xhtml>.
<#dtd> has <rddl:title> "DTD";
has <rddl:description> "A DTD for the L language.";
has <rddl:href> <http://example.org/schemas/L.dtd>;
has <rddl:purpose> <http://www.rddl.org/purposes#validation>;
has <rddl:nature>
<http://www.isi.edu/in-notes/iana/assignments/media-types/application/xml-dtd>
.
<#relaxng> has <rddl:title> "Relax NG Schema";
has <rddl:description> "A Relax NG Schema for the L language.";
has <rddl:href> <http://example.org/schemas/L.rng>;
has <rddl:purpose> <http://www.rddl.org/purposes#validation> ;
has <rddl:nature> <http://relaxng.org/ns/structure/1.0>.
<#xhtml> has <rddl:title> "User Documentation";
has <rddl:description> "Reference documentatin for L, in XHTML.";
has <rddl:href> <http://example.org/schemas/L.html>;
has <rddl:purpose> <http://www.rddl.org/purposes#reference>;
has <rddl:nature> <http://www.w3.org/1999/xhtml> .
> Right now, in both the simple XLink and RDF formulations, it's easy to
> use nature/purpose as a two-part key to look up what you want, and
> people seem to like this approach.
I agree. Given a semantic web query language or API, it should be
similarly easy to look up a DTD for validation. Here's a CWM "query"
that finds the description for the Relax NG associated with the
namespace (if any):
this log:forAll :x, :desc.
{<http://www.prescod.net/sometargetns#> has <rddl:resource> :x.
:x has <rddl:nature> <http://relaxng.org/ns/structure/1.0>.
:desc is <rddl:description> of :x.
}
log:implies {:x log:outputString :desc.}.
And here's one to print out all of the titles of the various ways to
validate:
this log:forAll :x, :desc.
{<http://www.prescod.net/sometargetns#> has <rddl:resource> :x.
:x has <rddl:purpose> <http://www.rddl.org/purposes#validation>.
:desc is <rddl:title> of :x.
}
log:implies {:x log:outputString :desc.}.
>> Second, this is just further evidence that RDF/XML is broken.
>
>
> I increasingly agree. Every time I try to write something down in
> RDF/XML I get tied in knots; N3 is immensely better. Either XML is just
> the wrong syntax for RDF, or the design of the current syntax is
> hopelessly hosed. -Tim
I think that this is roughly what the N3 would translate into as RDF.
<rdf:RDF
xmlns:rddl="http://www.rddl.org/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="http://www.prescod.net/sometargetns#">
<rddl:resource
rdf:resource="#dtd"/>
<rddl:resource
rdf:resource="#relaxng"/>
<rddl:resource
rdf:resource="#xhtml"/>
</rdf:Description>
<rdf:Description rdf:ID="dtd">
<rddl:description>A DTD for the L language.</rddl:description>
<rddl:href rdf:resource="http://example.org/schemas/L.dtd"/>
<rddl:nature
rdf:resource="http://www.isi.edu/in-notes/iana/assignments/media-types/application/xml-dtd"/>
<rddl:purpose
rdf:resource="http://www.rddl.org/purposes#validation"/>
<rddl:title>DTD</rddl:title>
</rdf:Description>
<rdf:Description rdf:ID="relaxng">
<rddl:description>A Relax NG Schema for the L
language.</rddl:description>
<rddl:href
rdf:resource="http://example.org/schemas/L.rng"/>
<rddl:nature"
rdf:resource="http://relaxng.org/ns/structure/1.0"/>
<rddl:purpose
rdf:resource="http://www.rddl.org/purposes#validation"/>
<rddl:title xmlns="rddl:">Relax NG Schema</rddl:title>
</rdf:Description>
<rdf:Description rdf:ID="xhtml">
<rddl:description>Reference documentatin for L, in
XHTML.</rddl:description>
<rddl:href
rdf:resource="http://example.org/schemas/L.html"/>
<rddl:nature
rdf:resource="http://www.w3.org/1999/xhtml"/>
<rddl:purpose
rdf:resource="http://www.rddl.org/purposes#reference"/>
<rddl:title xmlns="rddl:">User Documentation</rddl:title>
</rdf:Description>
</rdf:RDF>
Received on Monday, 11 November 2002 15:25:35 UTC