Thursday Sep 04, 2008

Building Secure, Open and Distributed Social Network Applications

Current Social Networks don't allow you to have friends outside their network. When on Facebook, you can't point to your friend on LinkedIn. They are data silos. This audio enhanced slide show explains how a distributed decentralized social network is being built, how it works, and how to make is secure using the foaf+ssl protocol (a list of pointers on the esw wiki).

It is licenced under a CC Attribution ShareAlike Licence.
My voice is a bit odd on the first slide, but it gets better I think as I go along.

Building Secure Open & Distributed Social Networks( Viewing this slide show requires a flash plugin. Sorry I only remembered this limitation after having put it online. If you know of a good Java substitute let me know. The other solution would have been to use Slidy. PDF and Annotated Open Document Format versions of this presentation are available below. (why is this text visible in Firefox even when the plugin works?) )

This is the presentation I gave at JavaOne 2008 and at numerous other venues in the past four months.

The slidecast works a lot better as a presentation format, than my previous semantic web video RDF: Connecting Software and People which I published as a h.264 video over a couple of years ago, and which takes close to 64MB of disk space. The problem with that format is that it is not easy to skip through the slides to the ones that interest you, or to go back and listen to a passage carefully again. Or at least it feels very clunky. My mp3 sound file only takes 17MB of space in comparison, and the graphics are much better quality in this slide show.

It is hosted by the excellent slideshare service, which translated my OpenOffice odp document ( once they were cleaned up a little: I had to make sure it had no pointers to local files remaining accessible from the Edit>Links menu (which otherwise choked their service)). I used the Audacity sound editor to create the mp3 file which I then place on my server. Syncing the sound and the slides was then very easy using SlideShare's SlideCast application. I found that the quality of the slides was a lot better once I had created an account on their servers. The only thing missing would be a button in addition to the forward and backward button that would allow one to show the text of the audio, for people with hearing problems - something equivalent to the Notes view in Open Office.

You can download the OpenOffice Presentation which contains my notes for each slide and the PDF created from it too. These are all published under a Creative Commons Attribution, Share Alike license. If you would like some of the base material for the slides, please contact me. If you would like to present them in my absence feel free to.

Tuesday Sep 02, 2008

Getting started with RDF

So you have seen Kevin Kelly's presentation on the next 5000 days of the web? You don't believe in magic, and you want to see how it can really work? This used to be quite difficult, but it has become a lot easier recently. Here are some pointers I will try to keep up to date.

Introductory Material

Read Dean Allemang and Jim Hendler's Book "The Semantic Web for the Working Ontologist". While you are waiting for that book to arrive you can already view and listen to Dean Allemang's excellent presentation at JavaOne 2008. If you are interested in Social Networking, then you could follow that up also with my JavaOne presentation that same year which goes more into the RESTful, self describing web, hyperdata side of things, ie the Web in the Semantic Web.

One should also remember that one does not need to trust everything one finds on the web. A good semantic web engine will allow you to merge different graphs depending on which ones you trust, which will indeed be something partly subjective, but which can also evolve. The semantic web allows you to change your mind. Good reasoning engines to help make that fast are only just appearing though.


A lot of the references on the W3C use the original RDF XML syntax, which happens to be somewhat unintuitive to use and leads people to think too syntactically about the semantic web. XML developers may feel tempted to take out their XML tools, which may not get them what they were looking for. Recently a non official Semantic Web primer was put together that uses the much easier to use Turtle notation, the one the SPARQL query language is inspired from.


It is good to use different tools, as each have their own advantages. There are too many ( see the sweet tools listing ) for anyone to try them all out. Here are the one's I use regularly:

  • the cwm python script, does a lot of useful things. Just downloading RDF/XML , following redirects, etc, and transforming it to your preferred format (Turtle) can be extremely useful. It also has a resoning engine, has rules, and can be set up and queried with SPARQL.
  • For my programming tasks, as I am a Java developer, I use Sesame 2. It is a Java framework that has a large following. It's competitor in the Java space is the HP backed Jena, which has better out of the box inferencing support.
  • If you want to quickly view your SQL database as an RDF store I recommend D2RQ. It has not been evolving much recently though.
  • The Tabulator Firefox plugin, turns Firefox into a generic RDF browser. It is a prototype, but is very useful.

Wednesday May 07, 2008

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.

Update Sept 2008: Two of the talks are now available online:

JavaOne Semantic Sessions Time Table

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
• 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.

Tuesday May 06, 2008

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.


An improved version of the presentation I gave is now available online with audio as Building Secure, Open and Distributed Social Network Applications




« April 2014