Friday, September 21, 2007

aShame - ajax SHAME

Strengthen by the knowledge from developing Conxilla (see earlier posting) I continued my ajax quest by taking on SHAME. A demo is available (note, the form template and data displayed is for testing purposes only).
The demo is the result of:
  • json variant of the Form Template and the Form Model
  • javascript classes which wrapping these json constructs
  • methods that
    • construct the DOM corresponding to a form GUI.
    • use callbacks from the DOM to modify the JSON model.
    • keep track of cardinality restrictions
  • dojo widgets to control input via dropdown menues, validatation etc.
  • dojo tundra skin to get a nice appearance
The demo has yet no server side support and there is many things that can be improved although the basic functionality is already in place.

In the next step, I hope to introduce server side support and a set of simple parameters which allows you to use aShame to display RDF data anywhere on the web by:
  • a parameter to where to fetch the RDF
  • a parameter specifying which Annotation Profile to use (i.e. specifying which metadata fields to display and other GUI hints)
If preferred the RDF may be edited, and, if the RDF resides in a repository which supports remote modification, it will be possible to push the RDF back as well (i.e. save). More on this later. (I am writing an article on remote modification together with Fredrik Enoksson, it will be presented at the 2nd International Conference on Metadata and Semantics Research.)

Saturday, August 18, 2007

Support for Description Set Profiles in SHAME

Today I added support in SHAME for converting Description Set Profiles (DSP for short) to Annotation Profiles (AP for short). A short introduction is perhaps in place:

SHAME is a library we have been developing within the KMR-group to automatically generate metadata editors (metadata expressed in RDF) from a configuration. The editor can be embedded, the current implementation supports java applications and a server side generated web interface. We are working on an AJAX version as well. The configuration has evolved over time into something we call an Annotation Profile which we recently (within the LUISA project) made an effort to write down a specification for.

Description Set Profile on the other hand is a specification developed within Dublin Core authored by my colleague Mikael Nilsson (chair of dc-architecture) as a formalization of the earlier thoughts on Application Profiles, see for example Heery and Patel. As the specification matured during this summer another colleague of mine, Fredrik Enoksson, has worked on a wiki format where Description Set Profiles can be authored. This formats allows both a simplified format for expressing it, a human readable presentation and an on the fly export to XML.

Hence, within SHAME I have done three things:
* Introduced a small API for representing Description Set Profiles.
* Provided a parser for the XML format.
* Done a converter to Annotation Profiles.

It should be noted that the converter is not complete, some (less common) cases will be supported as soon I have time to fix them. A few (luckily very uncommon) will never be supported due to inherent limitations to the design of SHAME. I will perhaps come back to this in another post later on.

Now, the effect of this is that you can test a newly expressed Description Set Profile to see if the result is satisfying rather quickly. In fact, the intention is to make SHAME flexible enough to be useful for editing after the design phase is over, saving time and money by avoiding the process of developing a tailored metadata authoring tool according to the profile.
The code is available in the SHAME cvs at sourceforge in the se.kth.nada.kmr.dst package.

Thursday, August 16, 2007

Conxilla - Ajax Conzilla

I have begun reworking the browsing part of the Conzilla tool (which I have been working with since 1999 back and forth) as an AJAX application. The first examples can be viewed here.
It is based on Dojo0.9 Beta and as you see it makes heavy use of the gfx package.
The hard work was to:
  1. generate the graphics from a data format which is divided into a layouts of concept / concept-relation and stylesheet information for the corresponding concept/concept-relation types.
  2. do absolute positioning of the labels in the boxes using regular html div on top of the graphics (to be able to use already provided features of html such as alignment, automatic line break, overflow hiding, centering etc.).
  3. fix correct behavior on text size changes, i.e. resize map size to match the new text size.
The example linked to above has yet no server side support.

Thursday, August 2, 2007

Chosing an AJAX toolkit

During the summer I have started playing around with dojo an "Open Source DHTML toolkit written in JavaScript". There are four reasons why I choose dojo instead of other AJAX toolkits. First, dojo seem to have a wide support via its dojo Foundation where for instance IBM and Sun participates. Second, is developed in an open manner and is open source. Third, by technical merits, it's packaging system and the availability of quite a large amount of different libraries are beneficial. Fourth, the gfx library allowing cross browser 2D graphics is of special interest to me.