Some thoughts on representation of historical events using topic maps.
In a large part, the thoughts here are inspired by Historial Event Markup Language.
An event representation pattern must address at least the questions:
The pattern should be extensible to enable Why ? and How ? to be represented using additional topic map constructs.
The basis of the pattern is that events are represented as topics - this enables an event to be treated as a thing in its own right, to be named and to be related to other resources and topics. Creating a topic for an event essentially answers the "What ?" question by providing a topic proxy for the "What".
Event participation is best represented using an association. There are two possible choices here:
Again there are two possible solutions to this.
In practice, (1) would be most suitable when there is point data. Some point data may require multiple separate axes in which case it might be best to simply define a meta-type for "location component" occurrences. This would enable not only normal GPS-style geolocation coordinate systems but also more complex location systems such as those used in astronomy. (2) would be more suitable when an identifiable place such as a city, country or region is involved, and ideally where there is a controlled list of such places.
There is nothing, of course to prevent these two solutions being combined and if "location component" occurrences are also used to provide location information for "location" topics, this enables inferencing to be used to extract relevant location information.
This is complex as HEML shows.
Factors to consider include:
It appears that HEML provides a way forwards for handling most if not all of these issues so the next step must be to attempt to create a set of topic map PSIs that can reflect the HEML model.
NotCon'04 seems to have been a roaring success. I arrived early enough to get in (the venue quickly reached capacity and all day people were waiting on a one-out/one-in basis). Luminaries of the technorati including Cory Doctrow, Bill Thompson and Brewster Kahle were on hand and the twin foci of the day were web politics and inappropriate technology. I'll be picking out a few of the most interesting bits of the day in a series of posts.
First up was Dan O'Brien's presentation on the working habits of prolific geeks. In an interesting piece of research Dan emailed a questionaire to a selection of about 50 or so geeks known for their prolific output (including XML's own Tim Bray). Some of the results were interesting and will probably ring true with many geeks.
Shells are incredibly popular - respondents were asked to provide screenshots of their current desktop. Most included several shells (one was just one big shell). One possible explanation given was that many of the respondents have been through numerous cycles of technology, OS and application suites and that the shell is one of the constants across all of those changes.
Text files and email apps were the two most popular ways of organising todo lists.
Many respondents had lots of home-grown scripts - with backup being one of the most common tasks automated by scripts. Possibly indicating a lack of faith with commercial backup tools or the need for a more personalised approach to backup than a commercial tool makes easily possible.
Many respondents have written far more than they have ever released to the public - the biggest factor against this being the feeling that the code was "not good enough" for public consumption.
It is interesting to compare my own habits with those presented by Dan. In general I do much of my work with browsers, shells, Eclipse, Emacs and Evolution. I don't think I could get much done without Emacs and Eclipse has rapidly become my weapon of choice in Java coding. What I do like about both of these tools is that they do not get in the way of using the command-line. All my coding projects quickly get an Ant build file (even those that are not Java projects). Being able to run a shell command from Emacs (or run a shell in a buffer) is a major plus.
I can't really comment on task organisation as I am incredibly bad at it. I've tried keeping todo lists in a variety of technologies, but just don't have the discipline to keep it up to date.
The scripts I use are principally short-cuts for repetitive command-line tasks such as starting and stopping my SETI client. I would argue that an Ant project / Makefile is a form of scripting and it is the form which I use principally in development.
As for lots of scripts and unreleased hacks. I've tried to make the most useful stuff available and I don't really consider myself to be a prolific creator of small hacks - the software I tend to produce is relatively heavyweight. There is somehting to be said for creating a releasing quick hacks such as XSLT for RELAX-NG documentation and diagramming, but a degree of professional pride and the desire to avoid dealing with support for incomplete code makes me shy away from putting all of those quick hacks online.
What do you think about these generalisations of the habits of prolific geeks ? Do they match your habits ?