The Sun BabelFish Blog
Don't panic !
excel and rdf
Scott McNeally never had much nice to say about spreadsheet software. And indeed there are huge numbers of problems with them. Some of them I can think of off the top of my head are:
- Hidden formula that nobody looks at and that get tweaked without alerting people
- Data that is never synchronized, with parts of it that is out of date
- Data that cannot be merged
- Some products even had virus problems...
And yet they are immensely popular, especially with the people who never see the problems that they lead to.
As it happens these are problems within the scope of the semantic web. Every spread sheet is like a mini SQL database. As long as you query the information inside of one database owned by one administrator all is fine. But what when you want to merge information from different databases? Ouch! That's really tough, because there is usually no clear understanding of which pieces should fit together. Do the columns in each database mean the same thing? Well if you have just a few big databases you can link them tediously together, but what if you have thousands of such databases? And each person wielding it is a complete novice to this problem? What if someone just renames a column in one spread sheet? What does that mean?
The topic of spreadsheets and the semantic web came to be one of the highlights of the confernces I went to in May. Dean Allemang in his talk at JavaOne ( now online ), used this problem in one of his examples. Eric Miller, talked about a solution that involved using the momentum behind spreadsheets to help build ontologies (I think, it's a while back now).
And one of the most interesting short demos I saw at the Semantic Tech Conference in May, was one given by Lee Feigenbaum of Cambridge Semantics just before leaving. Lee, who had been working on semantic web tools at IBM before going to start his own company, gave me a quick summary of the benefits of his middleware. Essentially by adding URLs somehow into the spreadsheet you can tie their meaning down a lot more carefully. By writing a plugin for Microsoft Excel ( they had a prototype working for openoffice before deciding to focus on M$ tools) that works together with the middleware, users can keep on behaving as they are used to, whilst helping link all the information together. Instead of working against each other, people in a company can build a web of information together. I had missed Lee's talk entitled Getting to Web Semantics for Spreadsheets in the U.S. Government a few days before, so I can't summarize this so well now. But the abstract of his talk is online.
Spreadsheets may yet be back again, but for the good.
PS. Please send me further links on this so I can flesh out this story better.
Posted at 07:12PM Aug 29, 2008 [permalink/trackback] by Henry Story in SemWeb | Comments[1]
picture of my blog
Wordle is a fun little Java applet that analyses your blog and builds any number of beautiful word clouds from the content. It has started a movement I think.
Just a pity that one cannot embed the applet in one's own web page. That would make it dynamic and a lot more interesting. Perhaps that will come. At present it seems the author is not sure what the IBM lawyers have decided.
This is somewhat similar to the graphic app I mentioned previously though with somewhat more content, clearly. Long term readers of my blog may find the picture of my blog to not be such a good reflection of my interests though. Statistic analysis of words does not get you that far.
Posted at 06:32PM Aug 28, 2008 [permalink/trackback] by Henry Story in Art | Comments[0]
my blog is worth $49,114.98
According to Dan Carlson's program my blog is worth 49thousand dollars. That's nothing next to Tim Bray's who's coming up for 700thousand dollars. Of course Dan Carlson is a big winner in all this, because everybody is linking to his site, so his just keeps growing. He is now at 2 million by his own estimate which has something to do with with some AOL deal a few years ago.

My blog is worth $49,114.98.
How much is your blog worth?
Now would I sell my blog for a new car?
As with a new car you'd have to be a bit careful how you sell your site. Tim Brays http://tbray.org/ongoing is worth $693,819.66 . But http://tbray.org/ongoing/ [notice the trailing slash] is worth $375,983.64 . So is Tim's site worth the sum of both, 1 million?
Posted at 10:28PM Aug 27, 2008 [permalink/trackback] by Henry Story in Silly | Comments[0]
Sun Intranet Foaf Experiment
Building a foaf server from an ldap directory is pretty easy. Rinaldo Di Giorgio put a prototype server together for Sun in less than a week. As a result everyone in Sun now has a experimental temporary foaf id, that we can use to try out some things.
So what can one do with foaf that one could not so easily do with ldap? Well the semantic web is all about linking and meshing information. So one really simple thing to do is to link an external foaf file with the internal one. I did this by adding an owl:sameAs statement to my public foaf file that links my public and my sun id. (It would be better to link the internal foaf file to the external one, but that would have required a bit more work internally). As a result by dragging and dropping my
foaf file onto today's release of the AddressBook someone who is inside the Sun firewall, can follow both my internal and my external connections. Someone outside the firewall will not be able to follow the internal link.
By extending the internal foaf server a little more one could easily give people inside of Sun a place to link to their external business connection, wherever they might be in the world. To allow other companies to do this too it would of course help if everyone in Sun had a minimally public foaf ID, which would return only minimal information, or whatever the employee was comfortable revealing about themselves. This would allow Sun to present a yet more human face to the world.
Well that's just a thought, and this is just an experiment. Hopefully it will make the semantic web more real for us here, and allow people's to dream up some great way of bringing all the open source world together, ever closer.
PS. For people inside of Sun it may be easier to just drag my
internal foaf file directly on the the AddressBook (started via jnlp). Otherwise to get the internal foaf file to download you need to click the "fetch" button next to the "same As" combo box when viewing my info. Then you need to switch to "Last Imported" and back to allow "Bernard Traversat" to appear in the second column. He appears as someone I foaf:know after the merger of the internal and the external foaf. I know this is clumsy, and I'll try thinking up a way to make this more user friendly very soon. You are welcome to participate on the Address Book Project.
PPS. Sun internal users can get more info on the project home page.
PPPS. We of course use the Firefox Tabulator plugin too for tests. It gives a different interface to my AddressBook. It is more flexible, but less specialised... The Tabulator web application does not work currently because we only produce Turtle output. This is to avoid developers trying to use DOM tools to process these pages, as we don't want to put work into an RDF crystalisation. ( Note: If at some later time you find that the plugin is not compatible with the latest version of Firefox, you can manually disabling compatibility checks. )
Posted at 03:23PM Aug 26, 2008 [permalink/trackback] by Henry Story in SemWeb | Comments[1]
The interpretation of fairy tails
Over the holidays I accidentally picked up a book by Marie-Louise von Franz, "The interpretation of fairy tails", and could not put it down until I reached the last page. I then ordered five other book of hers. If you have ever found fairy tails interesting but puzzling, you don't know how much you have missed. Seen from Marie-Louise's perspective, one of the closest students of Carl Gustav Jung, each of these are nuggets of deep knowledge of the human soul. Here is my translation of the first paragraph of my French translation of "The feminine in Fairy tails":
At the origin, and until approximately the XVIIth century, fairy tails were not so much meant for children as for the adult population. This situation was kept alive in the rural areas where until a relatively recently, story tellers would animate traditional vigils. Progressively though the development of the rational current and its refusal of the irrational, led these tails to be seen as just absurd old woman's stories, just good enough to amuse the children.
My guess is that a lot of this still holds true today, though a lot of her thoughts must have been integrated in one way or another by now. Once one starts learning to read fairy tails like this - though I keep being surprised at how deep her reading goes, and it will not be an easy task to get even close to it - one can start seeing how this can be applied to other arts such as film. I recently saw Jim Jarmush's "Dead Man" which is full of such interesting symbolism for example.
Posted at 01:52PM Aug 25, 2008 [permalink/trackback] by Henry Story in Art | Comments[0]
the semantic web is somebody else's problem
It is odd how few people notice the Semantic Web, even though it is being developed in the most open manner possible by the W3C and being deployed around the world. That is because it is Somebody Else's problem. Here is a section from the Book 3 of the Hitch Hiker's Guide to the Galaxy on this very strange phenomena. Arthur and Ford are watching a very well attended cricket match at Lord's cricket Ground in England, when Arthur notices something about Ford Perfect, who has a lot of experience traveling in the galaxy.
A little further it is revealed that the spaceship uses some very clever technology to make this work:"Something's on your mind, isn't it?" said Arthur.
"I think," said Ford in a tone of voice which Arthur by now recognized as one which presaged something utterly unintelligible, "that there's an SEP over there."
He pointed. Curiously enough, the direction he pointed in was not the one in which he was looking. Arthur looked in the one direction, which was towards the sight-screens, and in the other which was at the field of play. He nodded, he shrugged. He shrugged again.
"A what?" he said.
"An SEP."
"An S ...?"
"... EP."
"And what's that?"
"Somebody Else's Problem."
"Ah, good," said Arthur and relaxed. He had no idea what all that was about, but at least it seemed to be over. It wasn't.
"Over there," said Ford, again pointing at the sight-screens and looking at the pitch.
"Where?" said Arthur.
"There!" said Ford.
"I see," said Arthur, who didn't.
"You do?" said Ford.
"What?" said Arthur.
"Can you see," said Ford patiently, "the SEP?"
"I thought you said that was somebody else's problem."
"That's right."
Arthur nodded slowly, carefully and with an air of immense stupidity.
"And I want to know," said Ford, "if you can see it."
"You do?"
"Yes."
"What," said Arthur, "does it look like?"
"Well, how should I know, you fool?" shouted Ford. "If you can see it, you tell me."
Arthur experienced that dull throbbing sensation just behind the temples which was a hallmark of so many of his conversations with Ford. His brain lurked like a frightened puppy in its kennel. Ford took him by the arm.
"An SEP," he said, "is something that we can't see, or don't see, or our brain doesn't let us see, because we think that it's somebody else's problem. That's what SEP means. Somebody Else's Problem. The brain just edits it out, it's like a blind spot. If you look at it directly you won't see it unless you know precisely what it is. Your only hope is to catch it by surprise out of the corner of your eye."
"Ah," said Arthur, "then that's why ..."
"Yes," said Ford, who knew what Arthur was going to say.
"... you've been jumping up and ..."
"Yes."
"... down, and blinking ..."
"Yes."
"... and ..."
"I think you've got the message."
"I can see it," said Arthur, "it's a spaceship."
The second strangest thing about the ship was watching the Somebody Else's Problem field at work. They could now clearly see the ship for what it was simply because they knew it was there. It was quite apparent, however, that nobody else could. This wasn't because it was actually invisible or anything hyper-impossible like that. The technology involved in making anything invisible is so infinitely complex that nine hundred and ninety-nine thousand million, nine hundred and ninety-nine million, nine hundred and ninety-nine thousand, nine hundred and ninety-nine times out of a billion it is much simpler and more effective just to take the thing away and do without it.
[snip]The Somebody Else's Problem field is much simpler and more effective, and what's more can be run for over a hundred years on a single torch battery. This is because it relies on people's natural disposition not to see anything they don't want to, weren't expecting, or can't explain. If Effrafax had painted the mountain pink and erected a cheap and simple Somebody Else's Problem field on it, then people would have walked past the mountain, round it, even over it, and simply never have noticed that the thing was there.
And this is precisely what was happening with Slartibartfast's ship. It wasn't pink, but if it had been, that would have been the least of its visual problems and people were simply ignoring it like anything.
The most extraordinary thing about it was that it looked only partly like a spaceship with guidance fins, rocket engines and escape hatches and so on, and a great deal like a small upended Italian bistro.
So there.
You have to believe it to see it. And of course when it does become visible, it will seem so very like other things that have existed before.
Posted at 04:20PM Aug 14, 2008 [permalink/trackback] by Henry Story in Silly | Comments[0]
No iPhone for me
It is five years now that I have not had a cell phone. I was hoping the iPhone would change that soon. But I just find the limitations imposed on these devices unacceptable. The latest such restriction: "thou shalt not use the iPhone as a modem to connect your computer to the internet". (see Christian Fauré's article in French). As a result Apple pulled the Netshare app, described by a recent WIRED article, from its iStore. I hear rumors that one can get this to work by hacking (illegally) one's iPhone, but why should I break the law? That would just be a way for me to pour energy into a system that I don't own. I have not become a Linux hacker to give up my rights that easily.
Why do they have this rule? In France for €50 a month, you only get half a gigabyte per month of download bandwidth. Using your laptop to connect to a 3G phone would, unless you are very careful to close all applications that consume bandwidth, probably use up that limited space very quickly anyway. It can take an hour for Skype to use up 50MB of bandwidth I noticed. Perhaps that is why this rule is there. But that just indicates to me that 3G really is not ready for prime time yet.
Oops. I lied. I did get a cell phone I remember now, when I was in the US in May. For $15 I got a throwaway cell phone from Virgin Mobile. The price was right, and it saved me money making phone calls, and saved me wasting time looking for coin operated phones. Plus of course there were no roaming charges, as it was a US phone. And with Skype, I could just forward my calls to that phone, so I did not even have to give anyone a new phone number that would soon be out of date. Some people from Europe showing off their iPhones had some hefty roaming bills later when returning home. I even discovered that to change your SIM card in the US for such a phone could cost you $50! A sim card was more expensive than a cell phone!! Sound like Europe in the Middle Ages to me. Wherever you go you would have to pay some baron a fee for crossing his land. Security not guaranteed.
Posted at 07:43AM Aug 11, 2008 [permalink/trackback] by Henry Story in travel | Comments[0]
A Simple Sommer Project
Are you dreaming of the coasts of Java? Need some real sunshine? Have you had enough of hibernation? Here is a simple project to help you wake up and open up some new horizons :-)
A couple of weeks ago, Stephanie Stroka asked me how to make use of the so(m)mer library. So(m)mer is designed to plays a similar role for the semantic web that Hibernate plays for relational databases. So when relational databases feel too constraining, and you need an open database that spans the world, the semantic web is for you. And if you are a Java programmer, then so(m)mer is a good open source project you can participate in.
Anyway, I had not had time to write out a HOWTO, so I directed Stephanie over instant messenger on how to get going. It turns out this was a little more complicated that I had imagined, for someone completely new to the project. So Stephanie wrote out a really simple, indeed the simplest possible project, documented it, and added it to the so(m)mer repository.
As a result there is now a really simple example to follow to get out of hibernation mode, and into the blooming summer. Just follow the instructions.
Posted at 08:28AM Aug 10, 2008 [permalink/trackback] by Henry Story in Java | Comments[1]
Outlines of Love in a Functional Garden
My mother's sculptures have always been about movement, dance, love and life. Life in the sense of the pleasure one can have being alive, the passing fleeting moments that can be given no exchange value, because they cannot be exchanged. Her latest work, a series of human sized wire sculptures exhibited recently in the gardens of the INSEAD business school, express close to 40 years of research of this artistic space. The formal backdrop of the school, designed in a functionalist lego like architectural style of the 1970ies, reflects at every turn these transparent outlines of movement. When the wind blows across the campus, the leaves rattle in the sunshine, and their light reflected in the mirrory surface of the glass construct shines through a couple embracing on the grass, ever changing with the surrounding environment, yet timelessly there holding together the growing hope.
Walk around the garden and you will find the outline of a person playing hide and seek.
Or you may find a couple dancing on the grass.
My pictures of these sculptures does not really do them justice, not just because photography is an art whose complexity lies hidden deeply behind the simplicity of the mechanical click, but especially in this case because it hides the third dimension for which these sculptures are built and freezes the movement which these works are vibrating and pulsating through and through. This tension between movement and permanence, captured in a few metallic lines, is what shines through these constructions that took a lifetime of experience to build.
Still the exhibition at INSEAD is now at an end, and so the following slide show (click here) may have some role to play in bringing it back to life somewhere else.
Posted at 11:28AM Aug 05, 2008 [permalink/trackback] by Henry Story in Art | Comments[1]
My Semantic Web BlogRoll
I have not had time to automate my blog roll publication yet. Here is the first step down that path. The following are the semantic web blogs I follow closely. I am sure I must be missing many others that are interesting. Though I already am way past the point of information overload. (For those in the same position here are some tips (via Danny))
- AI3:::Adaptive Information - Atom
- Mike Bergman on the semantic Web and structured Web
- About the social semantic web - RSS
- Web 2.0 - what's next?
- Bnode - atom
- bobdc.blog - RSS
- Bob DuCharme's weblog, mostly on technology for representing and linking information.
- Bill de hOra - atom
- Bill de HOra's blog
- captsolo weblog - RSS 1.0
- CaptSolo weblog
- connolly's blog - RSS
- Dan Connolly's blog
- Cloudlands - RSS
- John Breslin's Blog
- Daniel Lewis - RSS
- A technological, personal, spiritual, and academic blog.
- Dave Beckett - Journalblog - RSS 1.0
- RDF and free software hacking
- David Seth - RSS
- Semantic Web & my backyard
- dowhatimean.net - RSS
- Richard Cyganiak's Weblog
- Elastic Grid Blog - RSS
- The ultimate blog about the Elastic Grid solution...
- Elias Torres - RSS
- I'm working on a tagline. I promise.
- Inchoate Curmudgeon - RSS
- I'm getting there. What's the rush? It's about the journey, right?
- Internet Alchemy - RSS
- Seeing the world through RDF goggles since 2007
- Kashori - RSS
- Kingsley Idehen's Blog Data Space - RSS atom
- Data Space Endpoint for - Knowledge, Information, and Raw Data
- Les petites cases - Fourre-tout personnel virtuel de Got - RSS
- Lost Boy - RSS 1.0
- A journal of no fixed aims or direction by Leigh Dodds. If you see him wandering, point him in the direction of home.
- Mark Wahl, CISA - RSS
- Discussions on organizing principles for identity systems
- Michael Levin's Weblog and Swampcast! - RSS
- Software development, technobuzz, and everything else.
- Minding the Planet - RSS
- Nova Spivack's Journal of Unusual News & Ideas
- More News - RSS
- Nodalities - RSS
- From Semantic Web to Web of Data
- opencontentlawyer.com - RSS
- copyright, content, and you
- Perspectives - RSS
- Interfaces, web sémantique, hypermédia
- Planet Kiwi - RSS
- ... where all the KiwiKnows is!
- Planet RDF - RSS
- It's triples all the way down
- Planete Web Semantique - RSS
- French Semantic Web planet
- Raw - RSS 1.0
- Danny's linkiness
- Rinke Hoekstra - RSS
- "Time is nature's way to keep everything from happening at once." - John Wheeler
- S is for Semantics - Atom
- Dean Allemang's Blog - Check out our new book on the Semantic Web!
- Semantic Focus - RSS
- On the Semantic Web, Semantic Web technology and computational semantics
- Semantic Wave - RSS
- News feeds and commentary maintained by semantic web developer Jamie Pitts.
- Semantic Web Interest Group Scratchpad - RSS
- Semantic Web Interest Group IRC scratchpad where items mentioned and commented on in IRC get collected.
- Semantic Web Wire - RSS
- Comprehensive News Feed for Semantic Web.
- semantic weltbild 2.0 (Building the Semantic Web is easier together) - RSS 1.0
- Building the Semantic Web is easier together
- SemanticMetadata.net - Atom
- Speaking my mind - RSS
- The whole is more than the sum
- TagCommons - RSS
- toward a basis for sharing tag data
- TechBrew - RSS
- Informative geekery on software and technology
- Technical Ramblings - RSS
- Ramblings of a GIS Hacker
- Thinking Clearly - RSS
- Make lots of money through stealth in shadows
- W3C Semantic Web Activity News - RSS
I automated the creation of this blogroll by transforming the opml of my blog reader with the following xquery
declare namespace loc = "http://test.org/";
declare function loc:string($t as xs:string) {
$t
};
<html>
<body>
<dl>
{
for $outline in //outline
order by $outline/@title
return
<span>
<dt><a href="{ $outline/@htmlUrl}">{ loc:string($outline/@text) }</a> - <a href="{ $outline/@xmlUrl}">{ loc:string($outline/@version)}</a> </dt>
<dd>{ loc:string($outline/@description) }</dd>
</span>
}
</dl>
</body>
</html>
I then had to edit a bit of the generated html by hand to make it presentable.
Thanks to the Oxygen editor for making this really easy to do.
Posted at 05:52PM Jul 24, 2008 [permalink/trackback] by Henry Story in General | Comments[3]
NetBeans and Semantic Wikis
The Kiwi team is meeting at the Prague Sun offices for the next few days to discuss the roadmap of this cutest of all semantic wikis. I completely empathize with Jana Herwig, when she writes:
An IT project is like herding cats, they say - in our case, we’ll be herding kiwis, and if we can enjoy it only half as much as these guys, I’ll be fine:-)
And illustrates it with this video:
I like to think of us developers as being the cats, and the kiwis as the things we want to herd. Tasty :-) That would indeed also explain why I am still in France - herding cats ain't easy.
Why am I still in France and not tasting free beer in Prague? Well, last month's conferences in California has given me a conference overdose, from which I am still recovering. Also I have been speaking so much about the Address Book, that I really need to sit down, roll up my sleeves, and just work on it. I did try to write something on topic yesterday, relating the semantic web and NetBeans - since Prague is the center of NetBeans development. I hope that excuses me somewhat.
A list of on the spot updates to this meeting can be found on kiwi planet.
Posted at 04:39PM Jun 25, 2008 [permalink/trackback] by Henry Story in Java | Comments[0]
Webifying Integrated Development Environments
IDEs should be browsers of code on a Read Write Web. A whole revolution in how to build code editors is I believe hidden in those words. So let's imagine it. Fiction anticipates reality.
Imagine your favorite IDE, a future version of NetBeans perhaps or IntelliJ, which would make downloading a new project as easy as dragging and dropping a project url onto your IDE. The project home page would point to a description of the location of the code, the dependencies of this project on other projects, described themselves via URL references, which themselves would be set up in a similar manner. Let's imagine further: instead of downloading all the code from CVS, think of every source code document as having a URL on the web. ( Subversion is in fact designed like this, so this is not so far fetched at all.) And let's imagine that NetBeans thinks about each software component primarily via this URL.
Since every piece of code and every library has a URL, the IDE would be able to use RESTful architectural principles of the web. A few key advantages of this are
- Caching: web architecture is the ability to cache information on the network or locally without ambiguity. This is how your web browser works ( though it could work better ). To illustrate: once a day Google changes its banner image. Your browser and every browser on earth only fetches that picture once a day, even if you do 100 searches. Does Google serve one image to each browser? No! numerous caches (company, country, or other) cache that picture and send it to the browser without sending the request all the way to the search engine, reducing the load on their servers very significantly.
- Universal names: since every resource has a URL, any resource can relate in one way or another to any other resource wherever it is located. This is what enables hypertext and what is enabling hyperdata.
- No need to download libraries twice: if you have been working on open source projects at all frequently you must have noticed how often the same libraries are found in each of the projects you have downloaded. Apache logging is a good example.
- No need to download source code: it's on the web! You don't therefore need a local cache of code you have never looked at. Download what you need when you need it (and then cache it!): the Just in Time principle.
- Describe things globally: Since you have universal identifiers you can now describe how source code relates to documentation, to people working on the code, or anything else in a global way, that will be valid for all. Just describe the resources. There's a framework around just for that, that is very easy to use with the right introduction.
The above advantages may seem rather insignificant. After all, real developers are tough. They use vi. (And I do). So why should they change? Well notice that they also use Adobe Air or Microsoft Silverlight. So productivity considerations do in fact play a very important factor in the software ecosystem.
Don't normal developers just work on a few pieces of code? Well speaking for myself here, I have 62 different projects in my /Users/hjs/Programming directory, and in each of these I often have a handful of project branches. As more and more code is open source, and owned and tested by different organizations, the number of projects available on the web will continue to explode, and due to the laziness principle the number of projects using code from other projects will grow further. Already whole operating systems consisting of many tens of thousands of different modules can be downloaded and compiled. The ones I have downloaded are just the ones I have had the patience to get. Usually this means jumping through a lot of hoops:
- I have to finding the web site of the code. And I may only have a jar name to go by. So Google helps. But that is a whole procedure in itself that should be unecessary. If you have an image in your browser you know where it is located by right-clicking over it and selecting the URL. Why not so with code?
- Then I have to browse a web page, which may not be written in my language, and find the repository of the source code
- Then I have to find the command line to download the source code, or the command in the IDE and also somehow guess which version number produced the jar I am using.
- Once downloaded, and this can take some time, I may have to find the build procedure. There are a few out there. Luckily ant and maven are catching on. But some of these files can be very complicated to understand.
- Then I have to link the source code on my local file system to the jar on my local file system my project is using. In NetBeans this is exceedingly tedious - sometimes I have found it to be close to impossible even. IntelliJ has a few little tricks to automate some of this, but it can be pretty nasty too, requiring jumping around different forms. Especially if a project has created a large number of little jar files.
- And then all that work is only valid for me. Because all references are to files on my local file system, they cannot be published. NetBeans is a huge pain here in that it often creates absolute file URLs in its properties files. By replacing them with relative urls one can get publish some of the results, but at the cost of copying every dependency into the local repository. And working out what is local and what is remote can take up a lot of time. It will work on my system, but not on someone else's.
- Once that project downloaded one may discover that it depends on yet another project, and so we have to go back to step 1.
So why do we have to tie together all the components on our local file system? This is because the IDE's are not referring to the resources with global identifiers. The owner of the junit project should say somewhere, in his doap file perhaps that:
@prefix java: <http://java.net/ont/java#> . #made this up
@prefix code: <http://todo.eg/#> .
<http://project.eg/svn/lib/junit-4.0.jar> a java:Jar;
code:builtFrom <http://junit.sourceforge.net/> .
#what would be needed here needs to be worked out more carefully. The point is that we don't
#at any point refer to any local file.
Because this future IDE we are imagining together will then know that it has stored a local copy of the jar somewhere on the local file system, and because it will know where it placed the local copy of the source code, it will know how the cached jar relates to the cached source code, as illustrated in the diagram above. So just as when you click on a link on your web browser you don't have to do any maintenance to find out where the images and html files are cached on your hard drive, and how one resource (you local copy of an image) relates to the web page, so we should not have to do any of this type of work in our Development Environment either.
From here many other things follow. A couple of years ago I showed how this could be used link source code to bugs, to create a distributed bug database. Recently I showed how one could use this to improve build scripts. Why even download a whole project if you are stepping through code? Why not just fetch the code that you need when you need it from the web? One HTTP GET at a time. The list of functional improvements is endless. I welcome you to list some that you come up with in the comments section below.
If you want to make a big impact in the IDE space, that will be the way to go.
Posted at 12:45PM Jun 24, 2008 [permalink/trackback] by Henry Story in Java | Comments[20]
My Mail.app is unstable
Mail.app is getting to be a real pain to work with. This is the 4th time in 2 months that I have to spend over 4 hours debugging it. As of writing this I can longer send or receive mail!
It used to just crash, which was useful because I could use dtrace to find all the files it had opened and just remove the directories in Library/Mail where it had last looked at. I could then re-import those folders later.
Since the 10.5.3 update it no longer crashes. A week ago it just either spent a huge amount of time thinking, using up over 100% of the cpu (there are two cores so it can use up to %200), and then finally recovered, but I had time to study a few chapters of "Semantic Web for the Working Ontologist before that happened. Today it just consumed so much cpu that all other applications became irresponsive. I reniced Mail with
$ sudo renice -20 -p 16410 #where 16410 was the process id of Mail.app at the timewhich made it possible to use my shell at least. Then it crashed.
I am clearly not the only one with this problem. Searching the web I found that
- Tim Bray twittered about a problem he had, though on asking him, it had a different solution, relating to removing ical entries.
- A long thread on the Apple support forum entitled "Mail Hangs". I am pretty sure none of the suggested solutions did anything for me. I spent last Saturday cleaning up my OS with OnyX (got it from somewhere else though)
- Another thread on the apple discussion forum entitled "Mail.app not restoring properly - keeps asking to import mailboxes, crashes".
- Search for "crashing mail.app" on Google limited to the last week or month, to get a feel for this.
Mail.app is really a key application of OSX. If Apple can't get this right, or don't have enough resources to dedicate to this, would it perhaps help to Open Source Mail.app? At least some of us could hunt down the problem and give them a fix. Currently I am not sure what they are doing about this. I will try once more to fix it, but I am really really close to switching to something else...
2 hours later - Solved: I had a mail folder for an internal Sun apple mailing list. I had suspected that there was a problem here as it would crash when I opened that folder. So I went to /Users/hjs/Library/Mail/IMAP-hsXXXXX@mail.sun.net and moved the apple.imapbox to a temporary folder. I then started Mail and it fetched all the threads from the server again. Having the mail on a remote server helps a lot. For one it should make moving to another client a lot easier...
Could it be that I have too many e-mails? The following seems to suggest that I have 273 thousand.
I have one gmail account, my personal imap server and sun work imap server if that helps...
hjs@bblfish:0$ cd Library/Mail
hjs@bblfish:0$ find . -name "*.emlx" | wc
273761 322242 17719867
Updates
It is 27 August now, and I have not had any serious crashes anymore. It could be that the last time I really cleaned up those broken folders. It could be luck...
Posted at 03:36PM Jun 18, 2008 [permalink/trackback] by Henry Story in General | Comments[3]
Firefox 3 is out
Firefox 3.0 is out. It looks really, really good! Get it here! and help set a world record :-)
Posted at 02:18PM Jun 18, 2008 [permalink/trackback] by Henry Story in General | Comments[1]
Blue Rays
Sixteen years ago, as I was studying philosophy in London on an empty budget, very close to living on the streets - off Kings Road, it is true, as I had decided that if I had to live in extreme poverty I would do so with style - I had one of these weird conversations around a fire with an Irish unemployed actor, and a number of other fellow travelers of fate. Reminded of the great Edinborough theater festival I decided on the spot I was going to go there. For some reason the actor I was talking to decided that I was not going to go. This surprised me somewhat. So I restated my desire to go. He doubted the seriousness of it again. How could he tell me what I was going to do, I blurted out. I had decided to go, so I would. I might have no money to go there, but I had no money to be here, so what was the difference? I had no serious appointments here, so what would stop me? "You just won't", he stubbornly affirmed. Angered by sheer nerve of his remark, but keeping my cool, I decided to come to a compromise with him. I would go but would fail twice to get there, I affirmed. The third attempt would be successful. The compromise was strange enough, that everyone around the fire nodded, and he had to accept.
Months passed and towards end of July 1992 I was reminded of the start of the festival. This was lucky as at the time I did not have any seriously way of taking notes or reminding myself of a date. Pieces of paper could all too easily get lost. And I did not have enough appointments to justify having an agenda, and if I did I could easily have missed looking at it. This was before the World Wide Web. Before internet cafes. Before widely available email. Before I even could afford a computer. All we had were libraries at the time and newspapers for sources of information. TVs also existed of course, but you had to know when to look, which was a whole skill in itself. And of course the type of TV we had access to was probably a black and white 13 inch set with poor reception. As far as books were concerned, I was reading Gareth Evans' The Varieties of Reference, and it was not there that I was going to find purely accidental information I needed.
So reminded of the start of the theater season, I decided to immediately get on my way. Early next morning, I walked to the train station bought myself a ticket with the little money I had, stepped on the train and was on my way. 45 minutes later I discovered that this was not the train to Edinburgh I was on, but some other one. So I got off in a rush and took the next train back to London. This time I made absolutely sure I was on the right train. I asked a number of people, sat down, and prepared to enjoy the journey. The train started and ran for a while. I was on my way! Then the train stopped, and turned back. Some engineering problem it seems. We had to take another train. Life is weird like that.
So as I stepped onto the third train I was reminded of my compromise many months before. I knew in my heart then that I was going to get there now. And off the train went. I had a mini magnetic go set, and taught a girl this oldest of all games along the way.
Of course arriving in Edinburgh I had absolutely no place to stay. Organizing a trip with the minimal budget I had would have been impossible at the time, and I certainly could not have afforded to rent anything there. Prices during the theater season were sky high. Many locals rent out their flats for the season, and use it to finance their holidays in warmer climates. I can't remember at what time I arrived, and how I would have slept the first night there. Perhaps on a bench somewhere, as usual...
The next morning I walked passed the film festival section. I entered and watched a couple of very nice young creators shorts. There was a session on a new digital projection technique called High Definition, which I attended. The quality of the image we were told was equivalent to that of film, after a film had been projected a few times. New film might be better, but it soon accumulates scratches, which digital film does not. And indeed if the speaker had not told me that the film we had just seen had been projected digitally I would not have known better. Pointing to the huge projector in the room he then explained in more detail what technology it required in layman's terms. I had no money. But I was sold. My first TV would be High Definition or nothing. As an undergraduate I had agreed with my conversation buddy Mark Pitt, that watching films at anything less than the quality they were designed for was sacrilege. Films shown on TV clearly were just shadows of their real self.
So to finish the Edinburgh story, that afternoon I got to speak to an attendee of the festival. Having told him that I just arrived from London, and questioning him about the difficulty of finding lodgings - I had seen some flats where thirty or so people were staying together, reeking of the sweet smell of decomposing garbage and unwashed socks - he agreed with me. His wife had not at all liked the apartment they had found initially he told me, so they had moved to another one. And now they did not know what to do with the original one, which they could not give back. I suggested I could look after it for them. He accepted, gave me the keys, and that is how I spent a whole festival season in a clean apartment, with a nice view all to myself.
16 years later, after the explosion of the internet onto the global scene, after DVDs came and never really quite worked, after the world wide web frenzy, and the dot com bust, after web2, after a High definition formats war, finally High Definition Television and their television sets have come to be affordable and worth investing it - another proof that innovation happens slowly. So for father's day my parents bought a High definition 40 inch flat panel screen, and I convinced them to replace the broken DVD drive with a new Blu-ray reader. We brought it back home, installed it, and watched Planet Earth ("Un Jour sur terre" in French) an extraordinary documentary about life on earth, with gorgeous scenes such as that of the Polar Bear, which starts with a close up of him walking on ice, the camera zooming back slowly, revealing the beauty of all the shades of polar snow, revealing the blue water through the cracking sheets of ice, revealing the many sheets of cracked ice separating slowly, the polar bear now just a spot on one of them, in one stunning image of the melting polar cap under the blue rays of the fading summer sun.
Posted at 12:35PM Jun 18, 2008 [permalink/trackback] by Henry Story in travel | Comments[3]
3 weeks of conferences and workshops in the Bay Area
I am in the Bay Area about to start my third week of conference/workshops with the combined themes of Java, identity, semantic web, and data portability.
The first week at JavaOne went very well. The Semantic Web Panel attracted way over 500 people by my guesstimate (no official figure yet), and Dean Allemang's talk "Semantic Web for the working Ontologist", that took place on the last day attracted well over three hundred attendees. My BOF, happened late at night at the same time as a big party, and only attracted 30 or so attendees. But on the whole JavaOne proved a great success.
Speaking to members of the liberty group at Sun, I discovered the existence of the Internet Identity Workshop in Mountain View, and decided this would be a good opportunity to learn more about this space. This was a very good use of my time, as it helped me get more familiar with many of the problems and technologies in this space. I put forward some of the ideas I had been discussing here relating the semantic web and distributed web of trust ideas using OpenId and foaf+ssl, which seemed to hold up quite well under the close scrutiny of the community. A few fun conversations with Eve Maler (aka xmlgrrl) on the relations between the semantic web and XML nicely spiced up the evenings :-)
That workshop was closely followed by a one day Data Sharing Summit, addressing issues raised by the Data Portability group, which I have been following relatively closely. This one day session was very helpful for my understanding of the types of problems that need solving. An ontology for what can be done with information in a foaf file would indeed be very helpful. This would have to allow one to specify in simple terms what relations could be republished or which ones should not be.
So next on the list is the Semantic Technology Conference in San Jose, which will bring all these threads together. For more on that see see my post on the Semantic Tech highlights.
Posted at 10:54PM May 17, 2008 [permalink/trackback] by Henry Story in travel | Comments[1]
Social Networks and Data Portability at Semantic Tech conference in San Jose
The upcoming semantic conference in San Jose, is getting going tomorrow, with an excellent list of speakers and subjects. Here are some highlights of the sessions relating to topics on which I blog regularly.
- The Future of Social Networks: The Need for Semantics, Monday, May 19, 2008 from 08:30 AM - 12:00 PM, will be hosted by John Breslin, Prof Stefan Decker and Uldis Bojars.
- The Semantic Web, Social Graphs and Social Verification Tom Ilube, Chief Executive Officer, Garlik Limited will present on Monday, May 19, 2008 at 05:00 PM - 06:00 PM
- Semantic Wikis: Boosting Collaborative Technology will be presented by Juergen Angele on Monday, May 19, 2008 at 05:00 PM - 06:00 PM clashing with Tom Illube's talk, sadly.
- Data Portability Interest Group will take place on Tuesday, May 20, 2008 at 07:15 AM - 08:15 AM. A bit early but well worth it. John Breslin will be hosting it.
- Linked Data Panel with Danny Ayers, Giovanni Tummarello, Nathan R Yergler of the Creative Commons, and Ralph R. Swick from the w3c will be speaking about this essential topic on Wednesday, May 21, 2008 at 08:30 AM - 09:30 AM.
- Data Availability at MySpace Jim Benedetto, Senior Vice President of Technology will explaining the Data Availability initiative.
- Developing Semantic Web Applications: Current Tools, Best Practices and Future Directions on Wednesday, May 21, 2008 at 09:45 AM - 10:45 AM, Eric Miller, Jaans Aasman, Jeroen Wester, Dean Allemang and I, will talk about various semantic web applications, the technologies needed to build them and more. In particular I will be demonstrating the Semantic Web Address Book
- Semantic Markup of Java Source Code Brian D Eubanks will talk on Wednesday, May 21, 2008 at 05:30 PM - 06:30 PM
Many more interesting talks will make sure I will spend another packed week. The full program is available online.
Posted at 10:42PM May 17, 2008 [permalink/trackback] by Henry Story in SemWeb | Comments[0]
Three Semantic Web talks at JavaOne 2008
Following on the success last year, JavaOne 2008 has lined up three talks on the Semantic Web, a 200% increase. The program should be an excellent way for Java enthusiasts to get a feel for how the Semantic Web is getting used in real application making money for real start ups, how to develop such apps in Java, how to build open social networks that bridge the social networking data silos, and with the help of Dean Allemang cover some theoretical grounds from a practical perspective .
Here is the timetable of the sessions at JavaOne. Highlighted in green are the three semantic web sessions. Highlighted in gray are 4 of the 5 sessions on Google's Open Social API, which reveals the importance social networks are taking in development. I don't think though that that API solves the real problem of current social networks: The Data silo problem. Only Semantic Web technologies can do that.
Below are the details of the sessions in tabular format. I believe they should complement each other very well.
| Session Title: | Developing Semantic Web Applications on the Java™ Platform |
| Session Time: | Thursday - 05/08/2008 - 1:30 PM-2:30 PM |
| Session ID: | PAN-5542 |
| Session Description: | The semantic web is nearing the point of widespread practical adoption: • The core specifications have stabilized. • Tools and frameworks implementing key features have been through several development cycles (for a listing see http://esw.w3.org/topic/SemanticWebTools). • An increasing number of major software companies have developed semantically enabled products or are actively researching the space. As companies start to translate theory into real Java™ technology-based applications, they are confronted with a host of practical software engineering issues: • What is the standard or recommended functional architecture of a semantic application? • How does that architecture relate to the semantic web standards? • Which of those standards are stable, and which can be expected to evolve in ways that would significantly affect prior applications? • What types of tools/frameworks exist that can be leveraged to help implement semantic applications on the Java platform? • How mature are the various categories of semantic web tools/frameworks? • Can API standardization be expected for certain tool/framework categories? • What best practices exist for the design and implementation of Java technology-based semantic applications? • What best practices exist for the deployment of Java technology-based semantic applications? • What future trends in Java platform support for semantic application development can be expected? This panel session gathers together semantics experts from the software industry to address these and other practical issues relating to the development of semantic applications on the Java platform. |
| Track: | Next Generation Web |
| Session Type: | Panel Session |
| Duration: | 60 minutes |
| Speaker(s): | Jans Aasman, Franz Inc; Dean Allemang, TopQuadrant Inc. ; Brian Sletten, Zepheira, LLC; Henry Story, Sun Microsystems, Inc.; Lew Tucker, Radar Networks |
| Session Title: | Beatnik: Building an Open Social Network Browser |
| Session Time: | Thursday - 05/08/2008 - 7:30 PM-8:20 PM |
| Session ID: | BOF-5911 |
| Session Description: | The recent growth of social networking sites is revealing the limits of the current ad hoc data architecture used by Web 2.0 sites. A typical example is that you cannot link to a person in a Facebook account from a LinkedIn account. What is needed to solve these problems is hyperdata, the ability to link data universally. Hyperdata is to data what hypertext is to text. Where hypertext enables text to link up to other text, hyperdata enables data to link up to other data globally. Where HTML enables open, distributed hypertext, the semantic web enables open, distributed hyperdata. Anybody can publish data that then becomes reachable by any tool crawling the web of relations. To illustrate the power of hyperdata, this session presents Beatnik, a social network browser and editor written entirely in the Java™ programming language that consumes any of the millions of available friend-of-a-friend (FOAF) files already published on the web and enables users to publish information about themselves and their own social network. It shows how you can drag and drop a FOAF URL onto Beatnik and start exploring a web of relations and find up-to-date information about where your friends live, who their friends are, and where people are currently located. With a click of a button, Beatnik will publish all your own relations to your web server in a nonintrusive way to make you part of the first globally available open social network. After a quick overview of the semantic web and FOAF, the presentation takes a detailed look at how the Beatnik client is built. This involves digging into one of the many Java technology-based semantic web frameworks, such as Sesame, and its APIs; a Java-platform-to-RDF mapper, such as so(m)mer or Elmo; and how this enables inferencing on the Java platform. On the server side, the presentation looks at how you can easily publish the contents of an LDAP database into any of the numerous RDF formats using JSR 311, the Java API for RESTful Web Services. It also covers the use of the Atom Publishing Protocol as a publication mechanism and discusses various security techniques for limiting the view of a personal graph of information by using OpenID and distributed-web-of-trust techniques. |
| Track: | Cool Stuff, Cool Desktop; Cool Stuff, Cool Next Gen Web; Open Source, Open Source Next Gen Web; Cool Stuff; Desktop; Next Generation Web; Open Source |
| Session Type: | Birds-of-a-Feather Session (BOF) |
| Duration: | 50 minutes |
| Speaker(s): | Tim Boudreau, Sun Microsystems, Inc.; Henry Story, Sun Microsystems, Inc. |
| Session Title: | Semantic Web for the Working Ontologist |
| Session Time: | Friday 05/09/2008 - 1:30 PM-2:30 PM |
| Session ID: | TS-5555 |
| Session Description: | This session presents the basics of practical semantic web deployment using standards-based tools on the Java™ platform. It covers the Resource Description Framework (RDF) as the fundamental mashup language of the web; SPARQL, the query language for RDF; and RDFS and OWL, which provide simple inferencing capabilities. In the distributed world of the web, information is moving from a hypertext paradigm to a hyperdata paradigm--the web today is not just a web of documents but also a web of data. But that data is available on the web and in the enterprise in a wide variety of forms: HTML, XML, RSS, spreadsheets, databases, and so on. RDF provides a uniform way to identify information in a distributed setting to form a web of data. The session demonstrates a Java technology-based platform (built on Eclipse) that uses RDF as an interlingua for merging information from multiple web sources. Java technology plays a key role in the success of the system in several ways. First, it uses the large variety of public domain semantic web software available on the Java platform as the basis of interoperability at the API level. Second, it uses the Eclipse framework as a visual editing environment for the ontologies. Finally, it uses the modularity of the Eclipse plug-in environment to enable a sort of plug-and-play architecture among semantic components. One of the basic ideas of the semantic web is that semantic models, or “ontologies,” can be used to describe how data fits together. In the context of the web of hyperdata, an ontology can describe how data in one source relates to data from another, or even which sources of data should be merged to answer a particular question or support a particular application. The idea is that, armed with these tools, a working ontologist can describe hyperdata applications without resorting to a general-purpose programming language. TopQuadrant has used these standards to construct a workbench for building semantic applications. Semantic mashups can be built by use of RDFS and OWL. TopQuadrant has also developed a visual flow editor for describing how distributed data can be merged in novel ways; it calls this editor SPARQLMotion, because it extends the standard query language SPARQL with intuitive information flow diagrams modeled in OWL. SPARQLMotion modules can be connected with a simple point-and-click interface to create novel arrangements. |
| Track: | Next Generation Web |
| Session Type: | Technical Session |
| Duration: | 60 minutes |
| Speaker(s): | Dean Allemang, TopQuadrant Inc. |
Posted at 07:50PM May 07, 2008 [permalink/trackback] by Henry Story in Java | Comments[2]
BOF-5911: Building a Web 3.0 Address Book
To give everyone a chance to try out the So(m)mer Address Book, I have made it available via Java Web Start: just click on the picture to the right, and try it out.
The Address Book is currently demoware: it shows how one can build virally an open distributed social network client that solves the social network data silo problem (video). No need to have an account on every social networking site on which you have friends, and so maintain your data on each one. You can simply belong to one network and link to all your friends wherever they are. With one click of a button you can publish your social network to your own web server, using ftp, scp, WebDAV, or even Atom. You can then link to other people who have (or not in fact), a foaf file. By pressing the space bar when selecting a friend, the Address Book with then GET their file. So you can browse your social network.
To get going you can explore my social network by dragging my foaf file icon
onto the first pane of the application.
In BOF-5911 which I will be presenting on Thursday at 7:30pm I will be presenting the social networking problem, demonstrating how the So(m)mer Address Book solves it, and showing in detail how it is build, what the problems are, and what work remains. I will also discuss how this can be used to create global single sign on based on a network of trust.
Posted at 12:50AM May 07, 2008 [permalink/trackback] by Henry Story in Java | Comments[4]
history meme
For an hour or so I managed to forget that I had a lot of work to do. Catching up with my unread posts on my blogroll, I came across Tim Bray's History Meme post, and decided to try it out. So here are my results:
hjs@bblfish:0$ history | tr -s ' ' | cut -d ' ' -f 3 | sort | uniq -c | sort -rn | head -n 10
115 ls
65 cd
60 ant
42 vi
42 less
20 fg
17 cwm
15 svn
14 pwd
9 top
ant is of course the build tool I use. I once laughed at the unintuitiveness of vi, but I later discovered it stands for virus - you just can't stop using it. cwm is the semantic web swiss army knife written in python: incredibly useful for every day semantic web hacking. And svn is the subversion command line client: I love subversion. When coding of course I spend a lot of time in either IntelliJ or NetBeans, depending on the day.
I have a number of other shells open, and the same commands tend to appear in them. Often the unix find command does. So I thought I'd try seeing what I get when I enlarge the list:
hjs@bblfish:0$ history | tr -s ' ' | cut -d ' ' -f 3 | sort | uniq -c | sort -rn | head -n 20
113 ls
55 vi
54 cd
36 less
36 ant
21 cwm
20 fg
16 pwd
12 svn
9 top
9 find
9 exit
8 ping
7 ssh
7 killall
7 defaults
7 curl
7 bc
6 bzcat
5 fink
Posted at 10:07AM Apr 22, 2008 [permalink/trackback] by Henry Story in Silly | Comments[1]





