28 July 2008

Semantic Web Open Source Software Hole?

If you have been working or playing with any of the open source software (OSS) efforts that implement the W3C standards, you may have noticed there is a major hole: thread safety and concurrency! Most of the OSS software is very good for learning, experimenting or creating single user solutions, but beyond that, you are out of luck.

That is, if you want to use semantic OSS libraries or code, you have to provide the multi-threading support. Impossible? No, of course not, but to do so, you have to provide a threadsafe / concurrent environment or get the OSS source code and rewrite it. Neither of these options are appealing. This is work, a means to an end, and its extra. If you want to provide an OSS-based semantic solution on a website where there is a possibility of two or more concurrent users ;) you will need to do some work.

Of course, buying a commercial product is an option if you can afford it, and are willing to work at the vendor's release pace and no access to source code, etc., that's fine...but then, you aren't using OSS now either.

If you are going to provide open source software for semantics, or just about anything else, and you want your software to become popular and enjoy widespread use in the "real world" - you need to provide thread safety, concurrency and even consider multi-user environments (e.g., like a web server!). If not, then your OSS will not likely see much use or notice.

I think the main reason for the slow uptake of semantic technology (and some other advanced technologies) on the web is not complexity, standards or usefulness of the concept, but rather the state (or rather the lack of state management / thread safety and concurrency) of Semantic Technology OSS and the cost of commercial semantic technology.

Its time many OSS projects recognize the realities of software for the web: multi-user environment support is a good place to start.

What do you think?