December of 2006
Open Source Developers Conference
Friday the 8th
I presented a paper to the OSDC on the DigitalFriend. Its my first paper on the DigitalFriend written in what I consider a user-friendly style, rather than an academic one, titled - ' The DigitalFriend: the first End-User oriented Multi-Agent System '. The OSDC seemed a good place to target it, and I was happy that they accepted it pretty much as is. Based on reviewer feedback, I added a section at the end on the 'Opportunity for open source developers'. The paper's title might seem a little pretentious, except that its actually true. Most agent-oriented (AO) people don't think that AO techniques are adaptable or applicable to end-user-oriented computing, given that AO is really 'Applied AI' (and 'programming' is the new 'Applied Math'). However, others do, including me. For example, the BDI agent architecture is based on 'folk' psychology - in which words like beliefs, desires, intentions (that's the BDI), hope, feelings etc, are used in everyday speak, to represent psychological concepts - underlining the point that at some level we are all psychologists, like it or not. To me, that simply foreshadows the likelihood that AO computing will be the computing paradigm that is most embraced by the end-user community (i.e. everybody ). It just hasn't yet been delivered to the masses in the right format, and doesn't have the necessary usability to be widely embraced. Of course, we sincerely hope that the DigitalFriend makes a significant contribution in that direction.
The OSDC ran from 6 th to 8 th of December, but I was only able to get to the last day, which really annoyed me as I wanted to attended all days... I have my second year annual progress report to present on the PhD on Monday the 11 th , and I'm a little under-prepared as the week counts down. Nonetheless, one day of three was certainly far better than none. The numbers were good, there were at least 280 people in attendance on day 3, it had three streams, and I didn't get my share of the audience (i.e. about 60 in attendance). The questions from members of the audiences in general, both showed that many of them were deeply informed about some of the topics covered, and also brought out some fruitful and useful discussion with the presenters, to the benefit of all attendees.
I got some good questions in my session ... one about data driven versus goal driven behaviour. I pointed out that the DigitalFriend is both: data driven (from the bottom up) via the web services that are wrapped by agents and do a timed refresh data from the service; and goal driven (top down) via the individual goals than the agents further up the agent tree are trying to achieve at any given time. It was an insightful question, as this is one place where the agent system within the DigitalFriend is so different from other programmed environments, including logic programs themselves, which tend to be either goal-driven or data-driven.
Not many sessions on Java, but that seems to be the way in the open software arena in general - Sun's Java isn't as well adopted here as it should be. Lots on PHP and Python. There were several sessions on Mono though, the open source version of Microsoft's .Net platform. I wonder whether this general trend regarding Mono had a significant bearing on SUN finally open-sourcing java properly the other day? But are they too late in doing so, with regard to the gaining momentum of mono? I certainly hope not, not the least reason being that the DigitalFriend is written in Java.
Some Other Paper/s of interest:
Title: RESTful Software Development and Maintenance
Author: David Hyland-Wood
At the programming level, he's comes to a conclusion that declarative programming of distributed programs, is the way of the future. While we are already doing that in the DigitalFriend, with the built-in declarative CoLoG language, effectively doing a 'late binding' of agents and web services with CoLoG script, David has come from a completely different, non-agent, non-AI angle, to that same conclusion - which reinforces the validity of the claim. Basically, REST (Representational State Transfer - an idea by Roy Fielding, an Apache Foundation founder), gives every component a URI, which are then discovered and used via technologies instanciating the Semantic web languages, RDF and OWL. All communication between components (i.e messages) are stateless, and all parameters associated with a request message, are carried in the message.Then David says "We use URI addressability to name and address both concrete resources (e.g. the source code for a class) and abstract resources (e.g. an iCalendar representation of changes to a code base over time). This property of REST also allows us to maximize component independence and reuse, because we can address each separate code portion and declaratively combine them via meta data, instead of within the confines of a programming language..."
The second part sounds a lot like a parallel concept to Web Services such as SOAP RPC procedures calls (messages to concrete code), and WSDL services descriptions, being a more abstract interface to services. While web services are missing a general 'declarative' language to tie them together in reusable ways, we've been doing it in the DigitalFriend (and its predecessor, the Digital Self) with CoLoG since 2003, and proposed it in 2001.
Clearly, the metadata approach that David is heading down, seems more flexible regarding resources than WSDL and SOAP, with a proposed 33 items of metadata (that's a good number for Buddhists:), but then, he is trying to address the ' software maintenance problem ', more so than dynamic development, where he has identified a " loss of coupling between the documentation and the code ", as a significant contributor as to why it becomes easier to write code afresh, than to understand and reuse some existing code. Nonetheless, it will be interesting to see how his work progresses.
OSDC 2006 Venue
The venue was really good - it was at the Caulfield campus of Monash University. This place has some history with computing in Australia. Before it was amalgamated with Monash in 1990, this was the Chisholm Institute of Technology, and before that, Caulfield Technical College. Back in 1974, when I first looked at applying for a computing degree, Chisholm was then the only place that offered a dedicated course in 'computing and data processing' in the State, not that I pursued it at the time. However, over the years I did do a number of their single semester subjects. I clearly recall doing a Database Design course here in 1981, run by an enthusiastic and knowledgeable Information Analyst with the unforgettable name of Caesar Formica, who was then the head DBA for Telstra or a similarly large company (i.e. I do remember his name, but I don't remember the company). While it didn't strike me at the time, I can now see how that name could have lead him to becoming the formidable Information Analyst that he was!
Unlike the main university campuses in Melbourne (University of Melbourne, Monash University's main campus in suburban Clayton, Latrobe University) - which are kilometres across in size, this campus is small and pleasantly compact, roughly in the shape of an 'eye' (see Photo #1 above). The site is interesting, it has a triangle of modern buildings between the railway line on the south side (adjacent Caulfield Station and the Caulfield Racecourse beyond that), with Dandenong Road (was Melbourne's main arterial road coming in from the East, before the Monash Freeway superceded it) swinging around from the Southeast then along the North boundaries of the campus - such a better location than Monash's main campus out in Clayton in what is a public transport desert.
|Photo 2 : Thoroughfare at front of Building K||Photo 3 : Monash Museum of Computing History|
The conference itself was within Building K which is front-and-centre of student life during semester. There is a large 1st level walkway (see Photo #2), and just along it about 100 metres, in foyer of Building B (see Photo #4) at the same level, is The Monash Museum of Computing History. It is well located, as the campus has had a long connection with the teaching of computing related subjects. They acquired their first computer in 1964. In the museum there is a complete installation of an equally old computer from the Monash campus proper (see photo #3). They have a nice old relic of a mechanical calculator (photo #5 - it adds, subtracts, multiplies, divides), some early mini's (photo #6), and even versions of some of the early microcomputers like the Commodore 64 in photo #7. I recall buying one of those in 1984 - along with 250,000 other Australians - during a phase of complete boredom (in my case), with an Amdahl mainframe I was coding at work in dull, featureless character-based Cobol and PL1 languages. I was amazed at the graphical possibilities with the little cheap Commodore 64 - and was surprised that most of my professional colleagues considered them to be just toys. I bought a complete Pascal development platform (all on one floppy disk) for it called G-Pascal, written by Gammon Software P/L, a Melbourne-based software company at the time (they could have been the 'Australian Borland Inc', if they'd ported it across to the early IBM PC).
|Photo 4 : Outside of Building B||Photo 5 : The Millicnar Mechanical Calculator|
The campus has more of a Business focus here now (although the Faculty of Art and Design has long been here too, with the Faculty Gallery - see photo #8), while most of the computing subjects are now taught at the main Clayton campus these days. However, Monash University also do an IT-oriented Bachelor Degree of Multimedia out further into the lovely country-estate-like setting of Berwick, near the southern foothills of Mt Dandenong, more affectionately known as 'The Dandenongs' (not to be confused with the City of Dandenong - very flat, no mountains, an industrial centre with all that that entails - some International students make that confusion when securing their first accomodation 'near Monash'). Whereas Berwick was always the sort of area where the management staff of those various industries in the City of Dandenong, lived or aspired to live. I've digressed badly here. Back to the Caulfield campus...
|Photo 6 : An old Sperry/Univac Minicomputer||Photo 7 : Early games machines, including Commodore-64|
I like to recall food and architecture when I can on these trips, so the food first: Below the walkway between Buildings K and B, is a street and on it is the Monash Mayala Cafe - where you'll get a good Chinese Mayasian disk for about $6. That's the other thing this campus has, which the main Monash campus lacks - a good variety of restaurants and cuisines. At the western end of the campus, beyond the mandatory KFC, is a traditional coffee house, a Chinese restaurant, Japanese food bar, pizza and a slick new 'Restored Coffee House' and bar. Across the street with the tramline down the centre (thats more public transport - train and tram) is an assortment of restaurants - Korean, Sri Lankan, Indonesian, Chinese - all with lunch menus.
Architecture? Well, there's the post modern the Faculty of Art and Design Building itself (see Photo #8), with a wobbly curved wall that flanks the eastern boundar of Dandenong Road. Its not much chop from the outside but the curvilinear shape of the building makes the interior an interesting space. But of much more interest is the great swathe of Edwardian houses just to the North across the highway. Its well camoflagued from the passing traffic and railway commuters: to the immediate north of the campus, if you walk past the drab commercial buildings running along the north side of Dandenong Rd (including the Monash International office), and into any of the tree-lined streets running further north - Finch, Bates, Turner, Epping Streets- all have good and ample examples of Edwardian houses built in Melbourne in an earlier era of style (around 1900 I'd guess). See photo #9.
|Photo 8 : Exterior, Faculty Art & Design||Photo 9 : Edwardian house in North Caulfield|