I've started putting the ideas I have had for the
Microcontent/Semantic Web Client together into a simple
prototype UI. I have something partly doing something, but
not enough to show yet. Here is a description.
The user selects from a variety of categories, such as
Movies, News, Weblogs and so forth, although the user
can add more using a directory lookup or by manually
entering information. Each category has two lists of
information stored with it.
The first is a list of datasources that supply content
for the category. One source might provide general movie
info, another reviews, while yet another provides images
and clips from the movie. The user may add and remove
sources when they wish. The data is in RDF and is
internally combined into a single source when used.
The second is a list of descriptions of how to present
the information. I call these 'layouts', and the user
may add or remove them as necessary. Basic layouts would
present the data in various usuable forms, others would
display as plain text, calendars, and so forth. Layouts
would also contain UI for searching and sorting through
A third aspect, which I haven't worked out the details of yet,
is the descriptions of what the data means. The Semantic Web
people call these ontologies. But here, they also need to
describe UI actions. For example, when we list the times
when a movie is playing, the application should know
that one can add them to a schedule or set reminders.
Neither the datasources nor the layouts should need to
I am planning on using XUL as the layout/presentation
language. I don't want to use (X)HTML, as it is a content
and structure language, not a layout language. The content
is stored in the datasources, so many HTML tags would be
useless. Seperation of content (datasources) and layout is
already achieved anyway.
I would need to add some elements or attributes to XUL to
bind the UI elements to the data to display, much like
(XBL can be used to create the new elements for the most
part). However, since XForms uses XPath expressions to bind
to XML data, an XPath-like language tailored to RDF data
instead of XML would be necessary.
Perhaps I should set up a project on
mozdev.org, although I'm
having trouble coming up with a good name for this thing.