- From: Danny Ayers <danny666@virgilio.it>
- Date: Fri, 25 Jan 2002 13:19:07 +0100
- To: "RDF-Interest" <www-rdf-interest@w3.org>, "Www-Annotation@W3. Org" <www-annotation@w3.org>
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