… is the working title of my diploma thesis.

Tomorrow I’ll hold the introductory presentation on my topic in the research seminar. This is to explain my project to other members of the working group, so they can give me feedback and suggestions.

What I’ll be doing:

  • extend the existing IkeWiki semantic wiki with a simple calendaring function
  • investigate use cases for calendaring in a wiki context
  • eventually develop a simple query language, that allows non-tech-savy users to do common queries and rules; others will probably be given full SPARQL or some extension on top of it (for temporal calculations)

Where I am:

  • I think I know where I’m heading
  • I’ve started hacking on IkeWikis internals
  • IkeWiki actually queries the database via SPARQL to retrieve relevant temporal information and displays them in a simple calendar view
  • I have some months to go for finishing my thesis

Difficulties:

  • Repeating events. Actually a very common thing. I havn’t seen a calendaring software that could handle more than just the simplest tasks. Please name a calendaring software that can do “the last wednesday each month which is not a national holiday”.
  • Custom time types: working days, work time (8-18 on work days), holidays, …
  • Sub-events. Should actually be pretty easy in a semantic wiki, but defining the semantics right and making an okay UI can get tricky
  • Non-gregorian calendars (I’ll probably not handle this)
  • Ambiguity in expressions. If you have a meeting scheduled for some day at 10:00, duration: 1 day, it probably doesn’t end at 10:00 the following day, but at 18:00, end of the working day it started. If the meeting starts at 17:00, duration 1 day, it probably ends at 18:00 the next day…
  • Various technical stuff, including:
  • XSLT sucks for datetime handling. It can only process very few formats; XSLT 2.0 has format-dateTime, but it can’t format a duration for all I know. Still IkeWiki is using XSLT a lot.
  • SPARQL is a pain for negation handling; you can do “IF NOT EXISTS”, but it’s very ugly. But this is common in calendaring: “if there is not another event at the same time, the office hour is wednesday at 10am”
  • Ajax. Ikewikis UI makes heavy use of Ajax, but that makes development and debugging much harder; often you won’t see the actual error message (or have to dig in some messy logs), because it’s all obscured somewhere in XMLRPC and JSON calls

Fortunately, we have a rather strong research group here in Munich. There are experts for query and transformation languages (e.g. Xcerpt, SPEX - Querying XML Streams), temporal calculations (Computational Treatment of Temporal Notions, CTTN) and time modeling Calendar and Temporal Type System CaTTS); and I’m also working closely together with the author of IkeWiki and Xcerpt. And of course they’re all nice people to work with!