Archive for June, 2007

Migrating an existing application to the iPhone and the Semantic Web

Saturday, June 30th, 2007

The “Compliance Data Management Service” for the building, construction and related industries (CDMS) is an example of a web and on-site workplace application that has been around long enough to experience the need to evolve to match the changes in underlying technologies. The iPhone and the Semantic Web are about to drive further evolutions.

Below is an overview of the current mobile phone based web application.

abe_diagram_light_02.jpg

This is the second version of the application. It supports work-place activities in real-time using mobile phones with web browsers capable of supporting XHTML-Mobile Profile web applications.

The original version of CDMS was based on Palm Pilots which operated disconnected from the network. The Palm Pilot version requires a manual synchronization step to update the CDMS application database . At the beginning and end of each day the Palm Pilot synchronizes with the CDMS application database via a desktop computer and a desktop application which passes data via a web service to the CDMS web application.

The iPhone

The iPhone represents a new class of mobile devices. As well as setting a new benchmark for ease of use and providing access to both mobile phone and wireless networks, it also sets a new benchmark for mobile web applications, reducing the gap between a standard desktop web browser and the mobile phone browser. In particular the iPhone is designed to support Web 2.0 and Ajax.

Ryan Breen sums up this evolution in his article In defense of Ajax for the iPhone when he writes “… in a few years I expect all mobile devices to provide the same browsing experience. With that, the line between traditional and mobile web development will further blur, with Ajax frameworks helping developers deliver consistent and appropriate experiences on each.”

The iPhone encourages the use of Ajax and simple intuitive interfaces. Adding these to the main CDMS web application is a good thing in itself and starts to bridge the gap with mobile phone XHTML-Mobile Profile web application. In time, as more phones move to equal the iPhones Ajax support a point may be reached where the CDMS web application and the mobile application are one and the same.

The Semantic Web

The current CDMS application is primarily a data island existing within a web of many potential external relationships. While there is currently one web service interface and more could be added, sharing data as XML still does not the relationships and their semantics to be fully expressed.

Some of the limitations of the current CDMS application are:

  1. users and organizations are forced to create yet another set of online accounts rather than using a single signon facility similar to OpenID.
  2. the relationships between people, organizations, places and things that are already established outside of CDMS need to be recreated within CDMS.
  3. CDMS uses its own internal classification schemes rather than utilizing existing publically available classification ontologies.
  4. CDMS uses an internal representation of standards that need to be complied with rather than linking to published standards (One problem for CDMS is that some of the standards are not currently freely available and not available in a suitable on-line form)
  5. CDMS uses an internal proprietary representation of organizations and their users
  6. CDMS uses an internal proprietary representation of a project structure and its tasks.
  7. constraints which could be expressed publicly within an OWL ontology are hidden internally within java source code.
  8. geographical location is not expressed in a standard manner.

The document Compliance Applications on the Semantic Web gives an overview of an alternative Semantic Web architecture for CDMS.

Future posts will start to address each of the above limitations.

Wordpress and OpenID

Wednesday, June 27th, 2007

OpenID is based on the fundamental concept that a URI identifies a resource. Given the large number of web sites that require a user to logon it makes sense to use a unique URI to identify each person. That way each person can managed his or her own user name and password on just one server. This is premise of the OpenID security system.

To use OpenID a user can either register with an OpenID Provider such as myOpenId or Videntity or implement their own OpenID server by using one of the available OpenID Code Libraries .

For 3kbo I’ve used the Verselogin Wordpress OpenId Plugin which enables the use of both OpenIDs and normal login with a username and password.

The Verselogin Wordpress OpenId Plugin install (using vesion wpopenid.86.tgz ) worked fine apart from needing to customize the login dialog box.

To login to an OpenID-enabled website such as this one, just type your OpenID URI. The website will then redirect you to your OpenID Provider to login using whatever credentials it requires. Once authenticated, your OpenID provider will send you back to the OpenID-enabled website with the necessary credentials to log you in.

The presentation by Scott Kveton at the Ignite Seattle conference 2007-02-13 is an excellent overview of OpenID.

Introduction

Monday, June 25th, 2007

3kbo is dedicated to building semantic web applications.

Wikipeida defines the semantic web as “an evolving extension of the World Wide Web in which web content can be expressed not only in natural language, but also in a form that can be read and used by software agents, thus permitting them to find, share and integrate information more easily”.

The W3C defines the specifications which form the basis of the Semantic Web. These are maintained by the W3C Semantic Web Activity . In its words the “The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries.”

Key specifications are Resource Description Framework (RDF) which is used to represent information and to exchange knowledge in the Web and OWL (Web Ontology language) which is used to publish and share sets of terms called ontologies, supporting advanced Web search, software agents and knowledge management.

Other important standards are SPARQL, GRDDL and SWRL.

SPARQL query language for RDF can be used to express queries across diverse data sources, whether the data is stored natively as RDF or viewed as RDF via middleware. SPARQL contains capabilities for querying required and optional graph patterns along with their conjunctions and disjunctions. SPARQL also supports extensible value testing and constraining queries by source RDF graph. The results of SPARQL queries can be results sets or RDF graphs.

GRDDL is a mechanism for Gleaning Resource Descriptions from Dialects of Languages. The GRDDL specification introduces markup for declaring that an XML document includes gleanable data and for linking to an algorithm, typically represented in XSLT, for gleaning the resource descriptions from the document.