« June 2005 | Main | August 2005 »


On Common Lisp "style" - part 2

My first installment on Common Lisp style talked about things like lexical conventions. From that you may have guessed that choosing names is also important. It is (and obviously this is not limited to Common Lisp). Given that, I think that this article on abbreviating CL names really misses the point. Granted, sometimes your source code tends to become hard to format/indent because some names are long, but abbreviating make-array to mkbuf smacks of the work of someone who used to write C and just cannot let go. This one takes the cake, however: abbreviating char to chr.

All of this reminds me of a particular global "flag" in IntelliCorp's KEE; it had a really long name (which I don't unfortunately remember anymore, it has been almost 20 years), and ended in "-flg". I could have thought of other ways of making the name shorter.

Remember Hal Abelson's & Gerry Sussman's advice (from "Structure and Interpretation of Computer Programs"):

... programs must be written for people to read, and only incidentally for machines to execute.

Posted by ora at 08:27 | Comments (2)


Semantic Web @ Mobiquitous 2005

I attended Mobiquitous 2005 last week. It is a nice little conference (and the venue was just great). Semantic Web was prominently part of the general subject matter of the conference. The use of Semantic Web techniques to implement context-awareness in pervasive computing environments was discussed in several papers (including mine, titled "Contextualizing Applications via Semantic Middleware" - I will make this available soon).

Sun God by Niki de Saint Phalle

This conference has a strong network technologies flavor. One thing that bothers me about ad hoc networks, dynamic sensor networks, and like (and evident at this conference) is that there are many papers that discuss optimization of network topology, connectedness, traffic, etc. that somehow base the optimization algorithm on a (hidden) assumption that someone (e.g., "centralized control") sees the entire network and has more or less full knowledge of it. This seems unrealistic, but then again I am not really a "network person"...

Posted by ora at 10:12


Semantic Web @ AAAI 2005 - part 2

Jim Hendler spreading Semantic Web gospel

Yesterday, Jim Hendler gave a great presentation on the Semantic Web. He pointed out that over the past 15 or so years, some notable folks (Ed Feigenbaum, et al) have called for a knowledge infrastructure to be constructed and deployed. Some of Jim's points were:

Why this presentation was scheduled at the same time as another invited talk on metadata I do not understand...

Posted by ora at 10:16


Semantic Web @ AAAI 2005

I am currently at the AAAI 2005 conference in Pittsburgh. Semantic Web is prominently part of the event:

Semantic Web was also prominently mentioned in Ron Brachman's presidential address.

Posted by ora at 17:32 | Comments (2)


Entity references, and terrorism

On Language Log, in a post titled "Copy-editing terrorism", Mark Lieberman finds more than 20 (lexically different) translations for the name of the organization claiming responsibility for yesterday's terrible bombings in London (as picked from newsstories). He says:

The ontological puritans of the Semantic Web movement, confronted with this evidence of human nature, will be muttering "you see -- I told you so..." Those interested in practical techniques for analysis of natural language will find in this case an especially pure and concentrated example of the problem of tracking entity references across documents and languages.

Food for thought. In fact, the underlying problem (i.e., naming things in an unambiguous way) is central to the Semantic Web. I recall a paper by Guha, titled "Semantic Negotiation: Co-identifying objects across data sources"; this paper, I thought, was particularly good and interesting. Guha introduces the idea of discriminant descriptions (a generalization of keys) and presents a scheme that allows two agents to negotiate a shared reference to an object.

Of course, we must not forget the Web Proper Names proposal either.

So much of the Semantic Web will depend on names and how we resolve them (eerily this is starting to sound related to what I believe Alan Kay has said: "Any problem in computer science can be solved by adding another level of indirection").

Posted by ora at 08:39 | Comments (1)


What is the Semantic Web, anyway?

So I have had some time to read and think. I felt that I have to try to figure out what this buzz about microformats and "upper- and lower-case Semantic Web" is all about. It seems that many folks have already weighed in on the topic (1, 2, 3, ...).

One of the key characteristics of microformats, as advertised by the creators, is that they are "open data formats built upon existing and widely adopted standards". Hmm... this is what W3C normally does when building new specifications (as illustrated here, for example). Cynically I would say that there is nothing new here. Then the microformats people say that these formats are for "humans first, machines second". OK, so now I am already not interested. I believe that a desirable goal for the Semantic Web is more like "machines first, humans not needed".

We need to discuss what are some of those characteristics that are essential to the Semantic Web and that differentiate it from other existing technologies. When I read various blogs I see a lot of discussions that say something like "take this stuff, apply some XSLT, throw in this SPARQL query, etc." In my mind, this is not what the Semantic Web, ultimately, is about. What I want to see is "take this information here, that over there, put them together and the right thing happens". We need more discussion about how the Semantic Web is going to be used (how else would we know what we need to implement and how).

What then are the (technical) qualities and features we should be looking for in the Semantic Web? The ability to combine information from different sources is surely one. Being able to process some particular format (of which there are many) is not interesting (you can write code for that; in fact, you can write code that does almost anything, but we are trying to get away from that). Building systems, therefore, that can discover and interpret ontologies (well, declarative descriptions of information), and in a sense "learn" to do new things is at the core of the Semantic Web. Reasoning, as a basic mechanism for the Semantic Web, plays an important role here.

Furthermore, reasoning can be used to make implicit information explicit, and this, I believe, is what's so fundamental about the Semantic Web. Our current systems store a lot of information that's explicit, but even more information is implicit (i.e., could be inferred): For example, if my calendar says that I have a plane reservation to fly from Boston to San Francisco, that may be useful information (it is explicit, by the way), but we think so because we have already applied our own interpretation on it. What's implicit in that piece of information is that after I take that flight, I will be in San Francisco, which, in turn, may have ramifications (to meeting scheduling, for example).

Of those things that the Semantic Web could be used for, one interesting area of research that's emerging is policy-awareness. Generally this idea holds a lot of promise - at least when I think of a policy as a means of instructing some system on how to behave in some future situation. It is a step towards our dream of autonomy and removing humans from the loop to the extent possible. Calling the policy-aware web a "rule-based policy management system" worries me a bit, though, given my current worry about where the rule discussion is headed.

Posted by ora at 09:18 | Comments (1)


Peace and quiet

Originally uploaded by Ora Lassila.

OK, this has very little to do with Semantic Web, etc., but this week I am looking at views like this.

Posted by ora at 12:56