For one thing, the Metcast system -- the system of disseminating
weather information -- can be considered an agent system. A Metcast
client can retrieve data from a Metcast server, and then act as a
server to other clients. Metcast has a reflexive ability: you can find
out what kind of data it can give to you. For example, try
The trailing slashes are significant. This is not an operational site,
and all the data for illustration only. There is a mechanical way of
deriving one of the URLs from the results of the previous
one. Obviously, all the XML document you'll see are dynamically
generated, in Scheme.
Metcast uses an S-expression-based language, MBL, for
communication between a client and a server. An MBL request can be
called an SXML-RPC -- but only by stretching the point. MBL has little
to do with XML-RPC. Unlike XML-RPC, MBL is descriptive rather than
prescriptive. The last few slides of the ILC02 presentation
talk a bit about MBL.
MBL was inspired by KQML. Recently I was surprised to learn
that KQML and Scheme have inspired a real agent communication system:
Check out the examples of using Q on that web page. Q is an extension
There is an area however where SXML is directly relevant to
agent communications, RDF and ontologies. Note Wilbur, whose designed
was sponsored by Nokia:
Wilbur is written in Common Lisp. I believe SXML can do everything
Wilbur does. We can take an RDF document, parse it out, normalize it
into triples. We can take a Wilbur query and translate into an SXPath
query over the SXML-based triple store. Furthermore, I believe we can
do better: we can mechanically convert a Wilbur query into an SXPath
query over _unnormalized_ (that is, hierarchical) result of parsing an
RDF document. I must say that I have done none of that, but I see how
that can be done.
Also of interest is RACER, an RDF/SemanticWeb inference engine
which is written in CL. I wonder if Scheme with Prolog embedding
(Schelog) could do better.