[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extensibility in Syndication formats
> I am suspicious of any claims that RDF buys you more
> extensibility than using XML and namespaces in
> practice.
(I expect Dan will respond - still, here's another couple of cents)
I'm a little surprised to find that you still hold this opinion, but
ok, by way of example. Say you wanted your RSS entry to describe a
project. In RSS 2.0 you might have something like:
<item>
<guid>http://example.org</guid>
<title>My Project</title>
<x:Project>
<x:name>My Project</name>
<x:homepage>http://example.org/home</x:homepage>
<x:Project>
</item>
In RSS 1.0 it might look like:
<item rdf:about="http://example.org">
<title>My Project</title>
...
</item>
<doap:Project rdf:about="http://example.org">
<doap:name>My Project</name>
<doap:homepage rdf:resource="http://example.org/home" />
</doap:Project>
If the consumer understands the project vocabulary, then full
communication can take place with either version. However, assume the
consumer knows nothing about the project extension.
If the consumer understands RDF/XML syntax, then from the RSS 1.0
version it can determine that:
1. the item resource is an instance of the class doap:Project
2. the item has a literal property, doap:name with the value "My Project"
3. the item has a property with a resource as it's value, the URI
being "http://example.org/home"
4. that doap:Project is an rdfs:Class
5. that doap:name is an rdf:Property with a domain including doap:Project
6. that doap:homepage is an rdf:Property with a domain including doap:Project
7. that doap:homepage is an rdf:Property
(and a few other bits)
If the consumer is aware of the RDF Schema for doap, then it also has
access to other information, for example that doap:name is an
rdfs:subPropertyOf rdf-schema#label". This could be used to decide how
to render the value for display.
If the consumer understands RSS 2.0, XML and namespaces, then it still
understands absolutely *nothing* about the project information, not
even that it applies to the same item.
Partial understanding is only one advantage, another big one is that
RSS/RDF vocabularies can be mixed and matched with impunity and still
carry that partial understanding (if fact, combined partial
understanding of all the parts). On the other hand, mixtures of
arbitrary combinations of RSS 2.0-based extensions are undefined, and
there is nothing to prevent conflicts in their interpretation
(namespaces separate the terms, but conflicts may appear at a higher
level in the app).
See also:
http://www.xml.com/pub/a/2003/07/23/extendingrss.html
Cheers,
Danny.