# Presentation: 401150

## RDDL Makes Namespaces More Useful

- Tim Bray, May 2003

## Road Map

- The problem
- Resource Directory Description Language (RDDL)
- Natures and Purposes
- Where to from here?

## The Problem

- The XML Namespaces Recommendation says:“The attribute's value, a URI reference, is	the **namespace name** identifying the 	namespace. The namespace name, to serve 	its intended purpose, should have the 	characteristics of uniqueness and 	persistence. It is not a goal that it be	directly usable for retrieval of a schema 	(if any exists).”

## Q: Should a Namespace URI Point at Anything?

- It doesn’t _need_ to for namespaces to do their intended job, but
- Names should be first class Web citizens, i.e. be grounded in URI space, and
- Why not? It’s free!

## Q: What Should a Namespace URI Point At?

- A schema (DTD, XSD, RelaxNG, Schematron, Examplotron, RDFS)?
- A stylesheet (CSS1, CSS2, CSS3, XSL)?
- Some executable code (Java, .NET, Perl)?
- Human-readable documentation?

## Resource Directory Description Language (RDDL)

## RDDL Credits

- Berners-Lee & Raggett proposed a **<resource>** element in 1996
- XML-DEV mailing list over Christmas-2000 holidays: Cowan, Diamond, Dodds, Grosso, Jelliffe, Ogbuji, Palmer, Passin, St. Laurent, Thompson, van der Vlist
- Jonathan Borden did all the work

## RDDL History

- Original Borden/Bray draft, January 2001, based on XLink
- Experiments with RDF forms during 2002
- W3C TAG discussion, 2002-2003
- Minimal RDDL proposal Feb. 2003
- May be blessed in some form by W3C

## RDDL Goals

- Provide a place to go to learn about a namespace
- Should be human-readable for basic bootstrapping
- Should be machine-readable

## Human-Readability

- Use HTML!
- Here’s part of a RDDL file:

- An _XML Schema_ _fragment_ is available which constrains the syntax of **xml:lang** and **xml:space**.

## Machine-Readability

- Based on XHTML
- Two new attributes on the **<a> **element linking to a related resource
**rddl:nature** What kind of thing it is
**rddl:purpose** What its intended use is

## Example With Source

**<p>An <a href=**_[http://www.w3.org/TR/xmlschema-0/](http://www.w3.org/TR/xmlschema-0/)_**>XML Schema</a>**** ****<a **
** ****rddl:nature="****http://www.w3.org/2000/10/XMLSchema****"**** rddl:purpose=****"http://rddl.org/purposes#schema-validation"**
** ****href="http://www.w3.org/XML/1998/namespace.xsd”>fragment****</a> is available which constrains the syntax of xml:lang and xml:space****.</p>**

**"**

- An _XML Schema_ _fragment_ is available which constrains the syntax of **xml:lang** and **xml:space**.

## Natures and Purposes

## The “Nature” of a Related Resource

- Describes what kind of an object it is
- Is a URI reference
- For XML vocabularies, the namespace name (if there is one)
- Otherwise based on the media-type
- A predefined list is available at **http://rddl.org/natures/**

## The “Purpose” of a Related Resource

- Describes intended usage (may be obvious)
- Is a URI reference, e.g. **http://rddl.org/purposes#****icon**
- A predefined list is available at **http://rddl.org/purposes**(#validation, #schema-validation, #module, #schema-module, #entities, #notations, #software-module, #software-package, #software-project, #JAR, #reference, #normative-reference, #non-normative-reference, #prior-version, #definition, #icon, #alternate, #directory)

## Where To From Here?

## If You’re Building an XML Language

- Give it a namespace name which is a URL, not a URN
- Make a human-readable description of what you’re up to, in XHTML, available at the namespace name
- Add related resources later as you create them

## What RDDL Means

- There are many different flavors of semantics
- RDDL lets you find out automatically which semantics have been provided
- This is key for both Web Services and the Semantic Web!

## References

- W3C TAG Issue on Namespace Documents: _[http://www.w3.org/2001/tag/ilist#namespaceDocument-8](http://www.w3.org/2001/tag/ilist#namespaceDocument-8)_** **
- Theses on Namespaces: _[http://www.textuality.com/tag/Issue8.html](http://www.textuality.com/tag/Issue8.html)_** **
- Latest RDDL proposal: _[http://www.textuality.com/xml/rddl3.html](http://www.textuality.com/xml/rddl3.html)_

## RDDL Makes Namespaces More Useful

- Tim Bray, May 2003