HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Whether you like it or not, you're part of the Java community. Just by reading this publication you're declaring that you're a part of the Java way of life, maybe not by choice but you're still here. We have a network of developers all programming in the same language; there are many aspects to this language, but they all share a common thread. Fun, isn't it?

One of my little side projects is occasionally contributing to the FOAF community. FOAF (Friend-of-a-Friend) is RDF-based metadata regarding who you know and what you know about them. It builds into a handy RDF/XML-based file you can keep on your server, thus allowing people to read it and the FOAF files of the other users. The project is in beta at the moment, but it's used by some professionals to hold the public data they need about themselves and about others. Once you interact with several thousand other users with FOAF files, you have a content-rich social network.

This gives rise to some interesting developments - I'm looking at it from a skills-level point of view; I'm interested in my group of people having a skill set. From there, if I wanted to put a project together, on SourceForge for example, then I could query my FOAF file to find out which people had the skills I was looking for. A basic set might look like this:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sk="http://example.com/skills"
xmlns:foaf="http://xmlns.com/foaf/0.1/">
<foaf:Person>
<sk:Discipline rdf:parseType="Resource">
<sk:description>SoftwareDev</sk:description>
<sk:skill>Java J2SE</sk:skill>
<sk:skill>Ant</sk:skill>
<sk:skill>Lucene</sk:skill>
<sk:skill>Jena API</sk:skill>
</sk:Discipline>
</foaf:Person>
</rdf:RDF>

Part of the fun I'm having with all this is getting to grips with query language, which is SQL-like. For Java there's the Jena API, which is designed for manipulating RDF and also has a query language (RDFQL) built in. Developing the implementation to put a team together to do software development is slow but it certainly is fun. As with many of these things, time is the deciding factor.

Another aspect I'm looking at is a catalog of code from each developer. If Fred has some open source code to iterate through IMAP folders in JavaMail, that information could be stored as metadata so I can query it and have a look at that code myself. Why go to all the bother of using Google when the metadata about the data is already close at hand? And more to the point - from someone you know, therefore there's a level of trust between developers.

However, it does require proactive developers who can grab the bull by the horns and produce some killer applications using RDF. It's an interesting challenge. Tim Berners-Lee mapped out the future of the Web as being resource based and named it the "Semantic Web." Read the RDF Primer (link below) and see what you think.

*  *  *

Are You an Open Source Developer?
Do you have projects that are hosted on sites such as SourceForge or freshmeat.net? If so I want to hear from you! JDJ is continuing with its Spotlight on Open Source column that focuses on Java open source projects. The only real requirement is that your project is on a repository so people can freely access code and, if they wish, join your development team. All I ask is that you first draft a small proposal on the JDJ Web site (http://grids.sys-con.com/proposal), then we'll get the ball rolling.

Resources

  • RDF Primer: www.w3.org/TR/rdf-primer/
  • RDF Validator: www.w3c.org/RDF/Validator
  • FOAF: http://xmlns.com/foaf/0.1/
  • Jena API: www.hpl.hp.com/semweb/jena.htm

    Author Bio
    Jason Bell is a programmer and chief technical officer for a B2B Web portal in York, England. He has been involved in numerous Web projects over the past five years, the last two of which have been servlet-based. [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.