Another little abstraction@en
Got abstractions on my mind a bit at present, last week I posted off a draft to follow up my IEEE piece A Difficult Abstraction. The kind of abstraction I originally had in mind, to make thinking about (Semantic) Web systems a bit less rocket science, was the agent. I changed the emphasis a bit after timbl posted about the Giant Global Graph and published another Design Issues note, Levels of Abstraction: Net, Web, Graph. This is powerful stuff, but the Graph is declarative data and only gets you so far when thinking about processes, services etc. Still, Tim's somewhat scary The basic follow-your-nose way the web works diagram was very much in line with my main argument, that the level of abstraction most developers work at can be difficult.
Another little abstraction just occurred to me while looking at Rob Cakebread's latest gem, doapurl.org. It's a PURL-style setup, to allow easy discovery of software projects - it's possible to find them using short strings (so far either using a little command-line utility or at the end of a common base URI). I'll probably post again about this, it's rather cool - has OpenID cover so project admins control their DOAP.
This is a registry, and registries of short names should really be the last resort in a distributed Web (ideally the only reserved ones should be axiomatically necessary). A good counter-example here is microformats - if you don't know about microformats.org, how do you know that strings like "fn" have special significance when used as HTML class names? Name squatting is bad etiquette.
So a fundamental architectural principle is that URIs are the
identifiers of the Web. If you want to name something globally, use
a URI. This is why @profile is so important, with microformats they
can be used to make the special string Web-friendly (and
RDFa is
rather close to thin ice right now). Microformats.org can act
as a
healthy registry, when the profile URIs are used. Aside
from the etiquette angle, there's genuine utility in using a
profile, because it allows any (user) agent to follow their nose
and find out more information about the resources of interest.
Rob's registry is healthy too because the short strings are only used in a user-facing way (effectively as labels), when you're in a context in which the URIs are available for disambiguation. You're not squatting the names, preventing anyone else from using them outside the context of doapurl. As URIs the names can be used as part of The basic follow-your-nose way the web works.
Anyhow, seems to me this notion of a healthy registry can be flipped over thus:
A Web site is a registry of the resources of interest to the Web site owner
It's a lot of other things besides, but from a machine-processable/follow-your-nose perspective, maybe that little abstraction could be useful.Â
@en2007-12-08T10:57:53+01:00