Universal standard mapping between D-Bus and URI namespaces

Anders Feder lists.anders at feder.dk
Tue Jul 1 20:55:58 PDT 2008

Thanks for your reply.

ons, 02 07 2008 kl. 00:12 +0100, skrev Scott James Remnant:
> What surprised me was that you started with the well known
> reverse-domain-name scheme, and then tottered off into strange territory
> by then using dbus.freedesktop.org for anything.

I'm not sure how this qualifies as 'strange territory'? This is the
standard way of allocating portions of the URI namespace for use with
e.g. RDF schemas.

Using dbus.freedesktop.org as the root space denotes that we're talking
about D-Bus in the first place.

We can process the URI uniformly from right to left and get the right
meaning out of it, whereas with the scheme you propose (below) one
will first read the domain name, then the "/dbus" bit and only _then_
realize that the part which you have *already processed* were supposed
to have been interpreted in the context of D-Bus.

Sure, its not impossible to handle (you can buffer the first part), but
why impose this unneccesary difficulty everywhere you need to interpret
the resource name?

> Shouldn't instead the URL scheme be:
>   http://<bus name in reverse>/dbus/<interface>/<method>

Using names in reverse like that will not qualify as a valid URI, hence
it would defy the purpose of defining a mapping like this in the first
place. RDF and XML require valid URIs for namespaces.

Theoretically, we could use names in not-reverse but I don't think its
acceptable to impose semantics on arbitrary domains like that, without
the domain owners permission.

Worse yet, portions of the namespace you suggest using already have
other semantics - see http://www.google.com/search?q=".com/dbus" to
search for a few. (Among others, http://www.dwheeler.com/dbus/ and
http://www.atoker.com/dbus/ pops up).

Finally, combining bus name and interface in the same URI will only
allow you to discuss semantics of interfaces as used on a particular bus
name, and not the interface in general, which I think is a bad idea.
When interface "x" has the same semantics when used on bus name "a" as
it does when used on bus name "b", why require two sets of practically
identical definitions?


Anders Feder <lists.anders at feder.dk>

More information about the dbus mailing list