Lists Home |
Date Index |
- From: "Rzepa, Henry" <email@example.com>
- To: firstname.lastname@example.org
- Date: Tue, 8 Sep 1998 15:44:44 +0100
>Date: Tue, 08 Sep 1998 14:40:11 +0100
>From: Peter Murray-Rust <Peter.Murrayemail@example.com>
>Subject: Proposal to XML-DEV: Collaborative XML
> Please could you forward this to XML-DEV - ta.
>I am continuing to miss 'real' applications of XML that I can enthuse about
>to people - and I suspect others share this feeling (cf. SimonStL's posting
>on cement shoes). In this message I propose that XML-DEV - a Bazaar as Eric
>Raymond calls it  - develop a small rapid communal application to
>demonstrate that XML can do new things. If you are excited by this, read on.
>IMO many killer apps will come from using XML client-side. The following
>proposal requires an almost completely dumb server capable only of
>re-routing XML documents.
>I propose that we develop an XML-based system for games.
>Chess is chosen as somewhere to start. It is not a killer app but the
>methodology is easy to extend. It would be as easy to do it for go. Henry
>and I will use it for molecular whiteboards - discussing molecules over the
>WWW - for example. If you have better ideas than 2-player games, suggest
>them (but be prepared to make some contribution...)
>We assume a simple XML representation of the state of a chess game (a
>simple 8x8 table with characters would suffice.) A player makes a (legal)
>alteration to this state and sends it as an XML document to the other
>player, either through the dumb server or possibly through e-mail (I am
>ignorant of whether this is a good idea). The updated state is then
>recreated for the receiving player and so on.
>It is straightforward to display this with a per-element browser such as
>JUMBO or (I assume) XXX from Steve Withall. The programmer has to be able to:
> - display the state
> - allow moves to be made (mouse, typed text, etc.)
> - verify their legality (the main point of client-side code)
> - send the new state to the other player.
>In JUMBO there are only about 3 modules that need to be written for such a
> - constructor // resets the board
> - processXML() // having reached endElement() in SAX, process the subtree
> - getDisplayComponent() // provide a JComponent for embedding in the browser
>The rest of the code is unrelated to XML and might include verifying the
>legality of moves.
>This should be fairly easy to do - it should also provide a simple
>demonstrator which can be used anywhere. The palyer would have to:
> - download a browser
> - download the chess.jar file
> - know how to play chess.
>It would be really fun to do it with more than one browser, showing that
>XML was not browser-dependent. i.e. player 1 could have JUMBO2 and player2
>could have XXX. [Of course until we get a consistent per-element API there
>would be different chess classes for each browser - or each class might
>have to to have multiple hooks.]
>There are several reasons why this is a useful thing to do:
> - could bring in new people
> - gives an easily understandable demo of XML that does something that HTML
>can't do (yes, I know that you can do *anything* server-side and send the
>results to an HTML form, but that misses the point of XML)
> - gives us experience in per-element programming
> - gives us experience of developing collaborative environments using XML.
>Obviously for games with >2 players the server may have to make some
>decisions but this should be a valuable area to explore.
>http://sagan.earthspace.net/~esr/writings/cathedral-bazaar/ - well worth
>reading as are some of the links.
Dr Henry Rzepa, Dept. Chemistry, Imperial College, LONDON SW7 2AY;
mailto:firstname.lastname@example.org; Tel (44) 171 594 5774; Fax: (44) 171 594 5804.
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)