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 information.

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 indicate this.

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 XForms does. (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.