Archive for the 'Sun' Category

The foaf+ssl world tour

As you can see from the map here I have been cycling from Fontainebleau to Vienna (covering close to 1000km of road), and now around Cyprus in my spare time. On different occasions along my journey I had the occasion to present foaf+ssl and combine it with a hands on session, where members of the audience were encouraged to create their own foaf file and certificates, and also start looking into what it takes to develop foaf+ssl enabled services. This seems like a very good way to proceed: it helps people get some hands on experience which they can then hopefully pass on to others, it helps me prioritize what need to be done next, and should also lead to the development of foaf+ssl services that will increase the network value of the community, creating I hope a viral effect.

I started this cycle tour in order to loose some weight. I still have 10kg to loose or so, which at the rate of 3kg per 1000km will require me to cycle another 3000km. So that should enable me to visit quite a few places yet. I will be flying back to Vienna where I will stay 10 days or so, after which I will cycle to Prague for a Kiwi meeting on the 3rd of July. After that I could cycle on to Berlin. But really it’s up to you to decide. If you know a good hacker group that I can present to and cycle to, let me know, and I’ll see how I can fit it into my timetable. So please get in contact! :-)

Read More..>>

Coding competitions

Being part of OSUM should also mean taking part on Open-source development or at least improving your development skills. I was thinking about the ways one can begin with such development; not everyone is ready to delve into the sea of source code of long developed open source projects. An attractive way can be participation on programming competitions or doing an internship for some time.

Let’s take a look at the possibilities I know about. There are many and new are appearing all the time. I’m sure you’ve heard about at least a few of them.

First Sun contests:

  • Zembly blogging contest
    • about: Zembly is Sun’s cool web app editor: you can create applications for example for Facebook, Google Gadgets, iPhone, and more. It is a kind of "Wiki-development style".
    • task: use Zembly, blog about it and win
    • price: $200, t-shirts
    • deadline: May 15, 2009
  • JavaFX Coding Challenge
    • about: JavaFX is Sun’s rich client platform, I think I could describe it as "AJAX-like functionality on steroids" to give you the first, quick impression
    • task: Develop an innovative rich internet application using JavaFX 1.1 and NetBeans 6.5
    • price: $25000, $10000, $5000, 3 x $1500 (student category), 100 x $25 Amazon gift
    • deadline: May 29, 2009
  • JavaOne Pass Contest
    • about: JavaOne is the biggest Java conference in the world
    • task: submit a 30 second video commercial on why you should be at JavaOne this year and why it is THE event to attend
    • price: a full conference pass and $1500 to offset travel expenses (several passes to be given away)
    • deadline: May 12, 2009
  • OpenSolaris Apps of Steel Challenge
    • about: OpenSolaris is Sun’s unix-like operating system
    • task: create a package for OpenSolaris
    • price: 5 Toshiba OpenSolaris Laptops
    • deadline: May 8, 2009

There are also many other opportunities to compete in development in the Internet. In some of the next posts I will try to list a few of them. By the way, if you know about some interesting competition, post a comment!

By the way, I know about at least one Sun-related contest that is in planning now. It is realted to the research project KiWi – Knowledge in a Wiki where Sun Microsystems is one of the partners that provide use cases. The KiWi coding challenge is likely to be announced soon. I can’t tell you any details but you can at least take a look at a running KiWi system demo at http://showcase.kiwi-project.eu/KiWi

Read More..>>

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 Hervig, 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:

Clearly I must be one of the cat like kiwis, because I am still in France. Last month’s conferences in California have exhausted me. And 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.

Read More..>>

KiWi: Knowledge in a Wiki

KiWi logo

Last month I attended the European Union KiWi project startup meeting in Salzburg, to which Sun Microsystems Prague is contributing some key use cases.

KiWi is a project to build an Open Source Semantic Wiki. It is based on the IkeWiki [don't follow this link if you have Safari 3.1] Java wiki, which uses the Jena Semantic Web frameworks, the Dojo toolkit for the Web 2.0 functionality, and any one of the Databases Jena can connect to, such as PostgreSQL. KiWi is in many ways similar to Freebase in its hefty use of JavaScript, and its emphasis on structured data. But instead of being a closed source platform, KiWi is open source, and builds upon the Semantic Web standards. In my opinion it currently overuses JavaScript features, to the extent that all clicks lead to dynamic page rewrites that do not change the URL of the browser page. This I feel unRESTful, and the permalink link in the socialise toolbar to the right does not completely remove my qualms. Hopefully this can be fixed in this project. It would be great also if KIWI could participate fully in the Linked Data movement.

The meeting was very well organized by Sebastian Schaffert and his team. It was 4 long days of meetings that made sure that everyone was on the same page, understood the rules of the EU game, and most of all got to know each other. (see kiwiknows tagged pictures on flickr ). You can follow the evolution of the project on the Planet Kiwi page.

Anyway, here is a video that shows the resourceful kiwi mascot in action:

Read More..>>

how binary relations beat tuples

Last week I was handed a puzzle by Francois Bry: “Why does RDF limit itself to binary relations? Why this deliberate lack of expressivity?”.

Logical Equivalence Reply

My initial answer was that all tuples could be reduced to binary relations. So take a simple table like this:

User ID name address birthday course homepage
1234 Henry Story 21 rue Saint Honoré
Fontainebleau
France
29 July philosophy http://bblfish.net/
1235 Danny Ayers Loc. Mozzanella, 7
Castiglione di Garfagnana
Lucca
Italy
14 Jan semweb http://dannyayers.com

The first row in the above column can be expressed as a set of binary relations as shown in this graph:

The same can clearly be done for the second row.

Since the two models express equivalent information I would opt aesthetically for the graph over the tuples, since it requires less primitives, which tends to make things simpler and clearer. Perhaps that can already be seen in the way the above table is screaming out for refactoring: a person may easily have more than one homepage. Adding a new homepage relation is easy, doing this in a table is a lot less so.

But this line of argument will not convince a battle worn database administrator. Both systems do the same thing. One is widely deployed, the other not. So that is the end of the conversation. Furthermore it seems clear that retrieving a row in a table is quick and easy. If you need chunks of information to be together that beats the join that seems to be required in the graph version above. Pragmatics beats aesthetics hands down it seems.

Global Distributed Open Data

The database engineer might have won the battle, but he will not win the war [1]. Wars are fought at a much higher level, on a global scale. The problem the Semantic Web is attacking is global data, not local data. On the Semantic Web, the web is the database and data is distributed and linked together. On the Semantic Web use case the data won’t all be managed in one database by a few resource constrained superusers but distributed in different places and managed by the stake holder of that information. In our example we can imagine three stake holders of different pieces of information: Danny Ayers for his personal information, Me for mine, and the university for its course information. This information will then be available as resources on the web, returning different representations, which in one way or another may encode graphs such as the ones below. Note that duplication of information is a good thing in a distributed network.

By working with the most simple binary relations, it is easy to cut information up down to their most atomic unit, publish them anywhere on the web, distributing the responsibility to different owners. This atomic nature of relations also makes it easy to merge information again. Doing this with tuples would be unnecessarily complex. Binary relations are a consequence of taking the open world assumption seriously in a global space. By using Universal Resource Identifiers (URIs), it is possible for different documents to co-refer to the same entitities, and to link together entities in a global manner.

The Verbosity critique

Another line of attack similar to the first could be that rdf is just too verbose. Imagine the relation children which would relate a person to a list of their children. If one sticks just with binary relations this is going to be very awkward to write out. In a graph it would look like this.

image of a simple list as a graph

Which in Turtle would give something like this:

:Adam :children
     [ a rdf:List;
       rdf:first :joe;
       rdf:rest [ a rdf:List;
            rdf:first :jane;
            rdf:rest rdf:nil ];
     ] .

which clearly is a bit unnecessarily verbose. But that is not really a problem. One can, and Turtle has, developed a notation for writing out lists. So that one can write much more simply:

:Adam :children ( :joe :jane ) .

This is clearly much easier to read and write than the previous way (not to speak about the equivalent in rdf/xml). RDF is a structure developed at the semantic level. Different notations can be developed to express the same content. The reason it works is because it uses URIs to name things.

Efficiency Considerations

So what about the implementation question: with tables oft accessed data is closely gathered together. This it seems to me is an implementation issue. One can easily imagine RDF databases that would optimize the layout in memory of their data at run time in a Just in Time manner, depending on the queries received. Just as the Java JIT mechanism ends up in a overwhelming number of cases to be faster than hand crafted C, because the JIT can take advantage of local factors such as the memory available on the machine, the type of cpu, and other issues, which a statically compiled C binary cannot do. So in the case of the list structure shown above there is no reason why the database could not just place the :joe and jane in an array of pointers.

In any case, if one wants distributed decentralised data, there is no other way to do it. Pragamatism does have the last word.

Notes

  1. Don’t take the battle/war analogy too far please. Both DB technologies and Semantic Web ones can easily work together as demonstrated by tools such as D2RQ.
Read More..>>