Showing posts from January, 2004


Ross Burton : computers/png-rdf-2004-01-28-09-48

A long-running goal of mine is to write a image gallery for my web page, so the screenshot and photo galleries can have categories, titles, dates, etc. Being a fan of metadata, XML, Dublin Core etc, I've planned to do this by embedding the metadata into the image files instead of relying on a database.

The Semantic Web - Talk by W3c

Atom Enabled

Atom is a universal personal content publishing standard created by leading service providers, tool vendors and independent developers. A list of companies and developers who have AtomEnabled their tools and services is available here.

Parsing OWL in RDF/XML

Archive of W3C News in 2004

2004-01-21: The Web Ontology Working Group has released Parsing OWL in RDF/XML as a Working Group Note. The OWL language is used to publish and share sets of terms called ontologies, supporting advanced Web search, software agents and knowledge management. This document describes a strategy for OWL-RDF parsers.


jMock - A Lightweight Mock Object Library for Java

jMock is a library for testing Java code using mock objects.

Mock objects help you design and test the interactions between the objects in your programs.

Download Haystack


Finally, we can download Haystack

The Simplest Thing

The Simplest Thing that Could Possibly Work

A friend of mine once said that there are problems and there are difficulties. A problem is something you savor. You say, "Well that's an interesting problem. Let me think about that problem a while." You enjoy thinking about it, because when you find the solution to the problem, it's enlightening.

And then there are difficulties. Computers are famous for difficulties. A difficulty is just a blockage from progress. You have to try a lot of things. When you finally find what works, it doesn't tell you a thing. It won't be the same tomorrow. Getting the computer to work is so often dealing with difficulties.

Turtle Adds Collections

Turtle - Terse RDF Triple Language

Go dajobe! Added collections to Turtle.

Open Source Rule Engines in Java

Manageability - Open Source Rule Engines Written In Java

I don't recall if someone has put together a list of open source Rule Engines that are written in Java. Here's the list I've accumulated so far...

Intro to Aspect-Oriented Programming Introduction to Aspect-Oriented Programming [Jan. 14, 2004]

Aspect-Oriented Programming (AOP) complements OO programming by allowing the developer to dynamically modify the static OO model to create a system that can grow to meet new requirements. Just as objects in the real world can change their states during their lifecycles, an application can adopt new characteristics as it develops.

Just When You Thought It Was Safe To Be A Web Developer

Inversion of Control Containers

Inversion of Control Containers and the Dependency Injection pattern

In the Java community there's been a rush of lightweight containers that help to assemble components from different projects into a cohesive application. Underlying these containers is a common pattern to how they perform the wiring, a concept they refer under the very generic name of "Inversion of Control". In this article I dig into how this pattern works, give it the more specific name of "Dependency Injection", and contrast it with the Service Locator alternative. The choice between them is less important than the principle of separating configuration from use.

A Journey into OWL-S

SchemaWeb - Blog Entry - OWL-S

OWL-S is an effort to describe web services using RDF
based technologies like OWL.

Web Resource Identification Concluding, Unscientific Postscript: Web Resource Identification [Jan. 14, 2004]

In this column I will conclude that discussion by considering the issues of URI ambiguity, opacity, and fragment identifiers.

The Agile Approach


Good overview of the agile approach to developing software. Presents the conclusion that agile methods are not a "silver bullet" but that industry attention is shifting focus from process to practice.

RDQL W3 Submission

RDQL - A Query Language for RDF

The document describes RDQL (RDF Data Query Language) which has been implemented in a number of RDF systems for extracting information from RDF graphs.

To Plan or Not To Plan

To Plan or Not To Plan

XP says to do a good job (tests, refactoring, communication) of solving today's job today and trust your ability to add complexity in the future where you need it." It has indeed been my experience that it's hard to predict the future. It's not necessarily just predicting the future that's hard, though, it's understanding the whole problem. At the beginning, you don't understand the problem enough to know what to design. You discover a lot about the problem space by implementing the code. Coding is almost like exploring the space. You discover more and more detailed information about the problem space as you explore it by coding.



Refactoring is a powerful technique for improving existing software. Having source code that is understandable helps ensure a system is maintainable and extensible. This paper describes the refactoring process in general and some of the benefits of using automated tools to reliably enhance code quality by safely performing refactoring tasks.

Unicode in XML

Entry-Level Unicode for XML

This article aims only to give you enough information to process Unicode text that is received from one process (or file) and sent to another. This covers a large range of XML applications, in particular many that are designed to run on a webserver.

Why I'll never write an XML processor myself.

Bright Future for Mobile Publishing

OJR article: Conference Panelists See Bright Future for Mobile Publishing

Publishing to the Web from your cell phone or other mobile device -- moblogging -- is all the rage with Tokyo

Java Units Specification Apples and Oranges (and the Java Units Specification) [Jan. 07, 2004]

This article discusses JSR-108, the Java Units Specification, which allows developers to create systems of units and to define conversion and representation rules in Java. Using an implementation of the Java Units spec, you would be able to attach a unit to a number so that when defining a rectangle in your program, it is clear that its length equals six feet, six meters, six miles, six light years, or some other standard unit of length, rather than just six. Following the definition of fundamental concepts, we will present this JSR, discuss possible uses and limitations, and provide ideas for future extensions. The article should be of interest to developers involved with scientific, financial, industrial, or other applications where units are of importance.

Indentification in Web Arch. Reviewing Web Architecture: Identification [Jan. 07, 2004]

The first point the AWWW makes is what it calls a constraint, that is, that one identifies resources in the Web by providing a URI for the resource. The motivation here is that, in the absence of a URI, user agents are unable to do anything with (interaction -- AWWW's second principle) representations (AWWW's third principle) of the state of a resource. The necessary, but not sufficient, condition of a user agent interacting with a resource by means of the Web is for that resource to have a URI. The user agent is able to retrieve a representation of the state of that resource by means of the scheme encoded in the URI -- a detail which will concern us in the next two columns.

Architectural Building Blocks Reviewing Web Architecture [Dec. 17, 2003]

As the AWWW puts it, the architecture of the web is based upon three concepts, each of which is related to the idea of a resource: identification of, interaction with, and representation of resources. Since, as we know from the REST position, the web is an information space within which agents have access to various representations of the state of various resources, it makes sense to orient the building blocks of the web's architecture around the idea of a resource. These concepts correspond, of course, with particular technologies, like URIs (the means of resource identification), the HTTP protocol (the means of agent-resource interaction), and various representation languages, like HTML, XML, RDF, etc. (the means of resource representation).

Turtle - Terse RDF Triple Language

Turtle - Terse RDF Triple Language

Turtle, a Terse RDF Triple Language, is an extension of N-Triples ([N-TRIPLES]) with the N most useful and appropriate things added from Notation 3 ([NOTATION3]) while keeping it in the RDF model.

New Syntaxes for RDF

New Syntaxes for RDF

This paper reviews syntaxes for RDF as defined in RDF Model and Syntax W3C Recommendation including RDF/XML as updated by the RDF/XML Syntax Specification (Revised) and describes the problems that remain after the revising. These include not clearly showing the RDF triple model and not working very well with newer XML technology such as XSLT and W3C XML Schema (WXS).

The paper then constructs requirements for new syntaxes in the two main uses - as a transfer syntax as an end user syntax. It summarises existing approaches and discusses using XML or non-XML formats and then describes two new syntaxes, an outline XML one and a new textual RDF syntax N-Triples Plus based on the N-Triples test case syntax.

How We Stopped Worrying and Learned to Love the Semantic Web

ECS EPrints Service - CS AKTive Space: or How We Stopped Worrying and Learned to Love the Semantic Web

We present a Semantic Web application that we call CS AKTive Space.
The application exploits a wide range of semantically heterogeneous and distributed
content relating to Computer Science research in the UK. This content is gathered on
a continuous basis using a variety of methods including harvesting and scraping as
well as adopting a range models for content acquisition. The content currently
comprises around five million RDF triples and we have developed storage, retrieval
and maintenance methods to support its management. The content is mediated
through an ontology constructed for the application domain and incorporates
components from other published ontologies. CS AKTive Space supports the
exploration of patterns and implications inherent in the content and exploits a variety
of visualisations and multi dimensional representations. Knowledge services
supported in the application include i…

What would Java 3.0 Have? 10 Reasons We Need Java 3.0 [Jul. 31, 2002]

This article imagines a "Java 3" that jettisons the baggage of the last decade, and proposes numerous changes to the core language, virtual machine, and class libraries. The focus here is on those changes that many people (including the Java developers at Sun) would really like to make, but can't -- primarily for reasons of backwards compatibility.

Semantic Blogging - Lessons Learned

Semantic blogging for bibliographies - lessons learnt

This document reports on our experiences building one of the open demonstrators contributed by Hewlett-Packard to the SWAD-E programme. The chosen prototype is a semantic blog, where we enhance blogging with semantic web tools and ideas, moving it beyond communal diary browsing to a rich information sharing scenario. Specifically, our semantic blog is used for informal knowledge management within the bibliography management domain. Our design was, broadly, to augment a blog with a metadata pipeline, with import, export and storage/access mechanisms.

What has the industry been smoking?

Web Services? What has the industry been smoking?

Let's take an old idea, like RPC, and wrap it with some new hype and nomenclature, and then mediate it with a completely orthogonal protocol! Yeah, lets!

Gotta love Robert Martin.

Flattening the Cost of Change

Working the Program

Traditionally, the cost of change curve said that if we detect the need for a change early, it costs less to make the change than if we detect the need late. I tackled that curve by saying, let's almost intentionally make mistakes so we can practice correcting them. That practice will help reduce the cost of making changes late.

2003 Google Zeitgeist

Google Press Center: 2003 Year-End Zeitgeist

The 2003 Year-End Zeitgeist offers a unique perspective on the year's major events and hottest trends based on more than 55 billion searches conducted over the past year by Google users from around the world. Whether you are tracking the global progression of the latest news or learning about healthy searches in Japan, the 2003 Year-End Zeitgeist enables you to look at the past year through the collective eyes of the world on the Internet.