The Long Tail of Recombinant Components - Bridging the Semantic Gap 2005-03-15

In Manageability - The Long Tail of Recombinant Components, Carlos E. Perez expands on the previously discussed article
The Long tail of Software. Millions of Markets of Dozens by addressing how this relates to recombinant computing - or the ability to assemble an application from configurable components.

(See also Strong Signals: The Recombinant Corporation by John Parkinson for a higher level look at recombinant components.)

The idea of recombinant components is more that just about being able to configure components and tie them together - it is about being able to adapt and reuse software without engineering in the traditional sense.

One of the key problems that needs to be solved in order to allow proper interaction between disparate components is semantic disparities and the vocabularies of they use to communicate. Well defined ontologies will likely pay a key role, and as such the Semantic Web technology is likely to pay an important role by bridging the semantic gap between components created in different environments.

This semantic gap is present in many areas of software engineering - different components operate at different levels of complexity, or make different assumptions about the how a system should work.

Even components that operate on the same level of complexity will often end up using disparate technologies to communicate with the outside world, or different vocabularies if they happen to share the same external represenation (such as XML).

To allow a user to reconfigure an application, you can't rely on components where "glue" code has to be written in a programming language to modify how the application works. Even basic scripting often proves a significant barrier, and is brittle in the face of evolving software.

OWL - the Web Ontology Language, a component of the Semantic Web, may prove to be an enabling technology for recombinant components by allowing software to reason about software - provide facts about the software in OWN and RDF, and some degree of bridging the Semantic Gap can be automated, provided that components are built with it in mind.

Some work has already been done to represent UML in rdf (see also A Discussion of the Relationship Between RDF-Schema and UML) allowing UML diagrams describing parts of a component to be converted to a form where it can be reasoned about automatically.

With components being well documented with UML, the UML being represented as RDF, and the appropriate RDF or OWL schemas, one would be approaching a situation where one could imagine a visual interface for recombining components based on automatically generated "bridges" between disparate vocabularies, where the software would be able to give guidance as to what connections makes sense from a semantic perspective.

I'll probably revisit this subject once I've spent some more time reading up on the semantic web.

blog comments powered by Disqus