Thursday, October 28, 2004

S5: A Simple Standards-Based Slide Show System

Eric Meyer and friends have a way of producing slide shows (a la PowerPoint) that is lightweigh, standards based (the content is xhtml, for example) and way cool. You can see examples in action: S5: A Simple Standards-Based Slide Show System. No dynamic content as yet, but presumably it's only a matter of time before someone integrates SVG with S5 to recreate those horrid little animations you see in all too many PowerPoint presentations.

Tuesday, October 26, 2004

In memoriam

Not really technology or semantic web related, but farewell John Peel. How many hours of homework and formative hacking on early kit computers did you help me through John? Too many to count. You'll be much missed.

'Facetop' Blends Screen and Video Images

Interesting novel approach to video conferencing and remote collaboration: 'Facetop' Blends Screen and Video Images (via Nova Spivack). Suppose the overlaid image was software rendered, instead of just being a video stream of the remote collaborator? Seems like an interesting paradigm for game UI's, and for certain human-agent interaction scenarios. Computer-assisted education seems an obvious one, but I can imagine other human-agent collaborations that would be possible, if the objects on the shared desktop had enough meta-data attached to them.

Saturday, October 23, 2004

SIMILE Longwell 1.0 Released

The Simile folks have released Longwell, their RDF browser suite. Looks good. It's a web application, but it's not clear that there's a web-services access point. Clearly, for a tool that's primarily user-facing, having a web-service endpoint is less relevant. But from first impressions, I would guess that some of Longwell's reasoning and storage capabilities would be useful components in a more general loosely-coupled semantic web application.

Wednesday, October 20, 2004

Web services competition

Tim Finin forwarded a link to this competition to the FIPA chat list. There are two parts to the competition: Part A is about choosing a service to invoke, based on some required input and output messages, and given a collection of WSDL service descriptions. I don't know all the details, and sample problems are not yet available, but it sounds like some fairly straightforward XML crunching and therefore rather uninteresting. Part B sounds a little more interesting: again given input and output messages, the requirement is to construct a web-service composition that gets as close as possible to the desired service. Since the only service descriptions are WSDL, it seems complex reasoning about the services themselves is not required. So, it could be that a simple A* solution is all that's needed, which would be a shame.

Something to revisit when the details of the sample problems are available.

Kids' typing tutor

As someone who learned to "type" with two fingers, hunt-and-peck style, and then unlearn that to develop proper typing skills, I've always been keen that my children should learn to type properly. We used to use Knowledge Adventure's Jump Ahead Typing, which is good but which died horribly when we switched to Windows XP. We've now replaced Jump Ahead Typing with Grass Software's GS Typing Tutor. It's very good: simple, effective and fun (or so the kids assure me) ... and it works on all recent flavours of Windows. Recommended.

Sunday, October 17, 2004

How to embed a web-service category in WSDL?

Something I've been wondering about, but don't have an answer for yet. Suppose an agent or service is notified of the address of a service, or is given the service end-point as a WSDL document. How does the agent discover the category information about the given service? I haven't yet come across an agreed way of embedding that information in the WSDL document (I suppose it could be seen as an application of ws-policy). Of course if you discover the WSDL by querying a UDDI registry you know the category because it's in the registry (and was probably part of the initial query). But if you already have the WSDL end-point, it seems inefficient and potentially non-deterministic to query the registry to do a reverse lookup on the service category, always assuming that the service is published in an accessible UDDI registry in the first place.

Saturday, October 16, 2004

More RDF-returning web services

Addendum to the previous collection:

Wednesday, October 13, 2004

RDF-returning web services

Bob DuCharme asked on the RDF interest list what web services are publicly available that return RDF. A summary of replies and pointers:

As a nice example of reverse lookup, given that I know my nearest airport (BRS), I could determine a very approximate location for myself: latitude 51.4, longitude -2.7 .... something I probably ought to have known but didn't!

Interestingly, the various developers of these services have provided HTTP GET interfaces to the services, but no-one has (so far) volunteered WSDL description of the services.

Friday, October 08, 2004

NASA agents in space

One of the more impressive papers I attended at AAMAS'04 was presented by Steve Chien on the Earth Observing One satellite mission. The agent system on EO-1 has been allowed to control the satellite, run the scientific data capture instruments, and decide which data to discard and which to transmit back to the ground - fully closed loop. During his presentation, Steve said they had even more ambitious goals for the mission, including being able to run fully autonomously for days or weeks at a time. A NASA press release today indicates further progress to this goal. What makes this work really impressive is that the computer system running the satellite subsystems, planning missions and performing fault diagnosis and repair is significantly less powerful than the laptop I'm using at the moment.

[via KurzweilAI.net]

Thursday, October 07, 2004

Validating wsdl

I'm learning about web services, so that I can add WS- interfaces to Nuin. There is a heck of a lot to grok, more or less all-at-once, but I'm concentrating on soap, wsdl, and uddi to begin with. In particular, getting a good grip on wsdl seems key, because there are various other tools, like apache axis that have automated tools that use the wsdl description to deploy web services or create Java stubs and skeletons automatically.

The problem is that wsdl is horrible. You can see how each piece belongs in the spec, but when you put all of the ports, messages, pieces, bindings, etc etc together it just becomes a complex mess. For RDF coding, the online RDF validators are very helpful for spotting errors buried in complex documents. So, I googled in hope for wsdl validators. There aren't many hits, and most of those are now defunct or useless. Salvation however, came with the wsvt plugin for Eclipse. Wonderful! Does good validation, with the results integrated into the Eclipse problem reports tab. Recommended.

This posting was copied from my former blog at 20six.co.uk

An alternative to Tomcat

I've been slowly building up my web-service knowledge by building a web-service endpoint into Nuin, using Apache Axis as the web-service tool. The Axis documentation presumes that you are using Tomcat as the servlet container (though it doesn't require Tomcat, I would stress). I've had several different attempts at using Tomcat over the past few years, and I've never really got on with it. It just seems so darned complicated! I've found Jetty to be a much better alternative. Jetty is much simpler than Tomcat, so there are probably some things it doesn't do that Tomcat or the other big players do do. On the other hand, Jetty is small and efficient and, best of all, launches easily from inside Eclipse so you can debug servlets easily using the Eclipse debugger. There are even Eclipse plugins to support deploying services to Jetty. I've never deployed Jetty for production use, so I can't comment on that, but I find it ideal for personal development prototypes and experimental use.

Note: this post was copied from my former blog at 20six.co.uk

A little Axis tip

This article by Kevin Jones, linked from the Apache site, shows how to get Axis to return the given WSDL file for a service, rather than rely on Axis to auto-generate new WSDL from a deployed service. Kevin's tip essentially is to add:
<wsdlFile>your wsdl file here</wsdlFile>

to the server-config.wsdd file. It turns out that you can put the same element in the service's own deploy.wsdd file, and it will be copied from there to server-config - saving you the trouble of finding and tweaking the server configuration. The ony gotcha is that if you re-generate the depoy.wsdd (via wsdl2java), the wsdlFile element will be overwritten. I guess it would be nice if wsdl2java acquired a new command line option to generate the wsdlFile element.

Note: this entry was copied from my former blog at 20six.co.uk

Back again ...

Like an itinerant tinker, I don't seem to be able to find a good place to settle my blog. So: I'm going to give it another shot here at blogger.com. The last place I tried to host my blog had very weird rss behaviour, and the editing tools were rather buggy. That shouldn't be a problem here, I'm guessing.