Book with annotations chapter

There is a new book from Wrox, 'XML Application Development with MSXML 4.0'
[1] which has a chapter which looks at W3C-style annotations. This chapter
describes a first pass at building a server-side application to generate and
link in annotations using MSXML, so that any browser can be used for this
purpose (full chapter list below).

Ok, shameless plug aside, working on this material did highlight some
general issues that may be of interest, so here's a bit of a post mortem :

* Promotion of 'new' technologies
The chicken-and-egg situation meant that to be able to provide information
on 'Linking and Pointing' (the title of the chapter) for a relatively
well-established platform (MS server with MSXML) the choice seemed to be
down to either rehashing the W3C specs and saying 'but these aren't
supported yet' or choosing one narrow angle and having a crack at some kind
of implementation. The existence of a working application (Amaya) made it
pretty easy to describe a particular functionality/purpose. On the other
hand, this application makes use of two rather big technologies that will be
new to a lot of potential readers : XPointer & RDF. Fortunately for the
forests the functionality relies on only a very small subset of these specs,
so they could be covered by giving a short overview and specifics only of
the parts needed by the application (RDF in 5 pages!), which will hopefully
be enough to seed the reader's interest without overwhelming them.

* Implementation of 'new' technologies
The aim was to provide the information rather than the implementation, and
it was fun to get something useful working based on the new technologies
without using pre-built APIs. In this respect the approach was reasonably
successful - RDF was stored in XML DOM, a naive but workable approach as the
annotation generation/viewing system only really needs the XML side of the
RDF M&S. Only a very limited range of XPointer expressions were required, so
these were handled using simple string manipulation (the joy of regexp). To
be able to use XPointer on existing web pages, XMLTidy (a COM version) was
used for pre-processing.

* Limitations of existing technologies
Attempting to build an annotation system really highlighted the limitations
of existing systems (especially IE ;-), and perhaps this was the most
important lesson learned from this piece - describing an application that is
simple in principle, but is far from straightforward in implementation
without the new technologies makes a very good case for those technologies.
Viva use cases!

In conclusion, having a model application (Amaya) on which to base the
discussion/development was very handy - a proselytizer's dream in fact.
Because of the lack of existing support, the technologies were introduced
fairly incrementally here, which seems to work. In the long term, in
practice presumably it would better to use off the shelf tools, but I think
there certainly is value in demonstrating aspects of the technologies in
terms of more familiar programming kit (DOM + regexp in this case).

BTW, It was possible to approach the functionality of Amaya-style
annotations using server-side XML, to find out how you'll have to buy the
book <grin>, or at least have a look at the code -  free from the Wrox site
[2]. I reckon with a couple of weeks more work a usable system could be
developed, albeit somewhat less friendly than Amaya.

Cheers,
Danny.

[1]
http://www.amazon.com/exec/obidos/ASIN/186100589X/qid=1011953353/sr=8-1/ref=
sr_8_3_1/104-8639683-4241565

[2] http://www.wrox.com

Chapter 1: Introduction to MSXML
Chapter 2: Document Object Model in MSXML
Chapter 3: Schemas in MSXML
Chapter 4: XPath in MSXML
Chapter 5: XSLT in MSXML
Chapter 6: Simple API for XML (SAX) in MSXML
Chapter 7: Styling XML Content
Chapter 8: Linking and Querying (* the annotations chapter)
Chapter 9: Sending and Retrieving XML Data
Chapter 10: Transformations on the Server
Chapter 11: Schemas on the Server
Chapter 12: Working with Data on the Client
Chapter 13: Performance, Scalability, and Security
Chapter 14: Case Study: Information Portal
Chapter 15: Case Study: Attendance Tracking System
Chapter 16: Case Study: XML Messaging System (Helpdesk)
---

Danny Ayers
<stuff> http://www.isacat.net </stuff>

Received on Friday, 25 January 2002 07:23:23 UTC