Archives mensuelles : avril 2004

WordPress is going semantic (a little bit)…

WordPress, the famous weblog engine (powering this site), is getting equipped (in its CVS HEAD version) with a new feature allowing webloggers to post small pieces of metadata (pairs of key + value) with each one of their blog entries. WordPress is going the same way Charles Nepote went with his semantic wiki prototype. We won’t wait a long time before someone comes with a real semantic bloki. It must be a matter of months.

By the way, Archetypes is a new masterpiece of Plone and its references management engine allows the weaving of semantic relationships inbetween Content objects. It just lacks the ability to publish its schema and data as RDF files through Plone URLs… Anyway, Archetypes should soon provide the ability to extend objects schemas at runtime through the web. It means users will be able to add metadata to objects. These features can already be tested with PloneCollectorNG in its latest version (test the CVS version if you can).

« God writes straight with crooked lines »

God is a pattern of a fractal reality. This is the reason why« God writes straight with crooked lines » Forget the « God » part of this proverb if you’re not comfortable with it. The idea I want to present here is that we poor human beings struggle a lot with our brain in order to make sense out of reality. As an example, we are facing a phenomenon (the NASDAQ is up x points) and trying to identify a trend in this phenomenon (will it last long ?). Day one, reality goes this direction. The day after, the trend seems to be opposite. The reality lines are much crooked.

Reality is such a mess

You can sometimes modelize reality in order to identify some underlying more global trends. Long-term trends mix with shorter-term trends. Long-term economic cycles mix with shorter-term cycles. And the result is rather chaotic series of economic indicators. The mix of scales makes such a mess.

Is this mess chaotic ? Or is there a more complex order behind it ? Unfortunately, science does not always give definite answers to this question. And it is most often a question of faith ! What makes me comfortable with the idea that there must be an hidden order behind the chaos of reality is when I see some sort of fractal patterns in reality. And these patterns are quite common when dealing with complex systems (living systems, social networks, …). If these patterns are really fractal, it provides some interesting properties to reality. It first implies that just by looking at micro-patterns in reality, you will see the macro-patterns also : micro-patterns and macro-patterns are similar (this is the definition of fractality). Theologically, it is an attractive idea : one says that God does not sit on a cloud but resides everywhere in reality. If God is a pattern in a fractal reality, then it means that you are in relation with God in your everyday life (micro-level). You don’t need any spiritual elevator in order to reach a bigger scale God since He is the same (or at least similar enough to believe He is unique) at all scales.

Furthermore and somewhat paradoxically, if God is pattern in a fractal reality, it also means that you may never be able to predict the global long-term trend that He may have defined. Let’s admit the crooked lines above result from the mixing of several cosine curves applied one on top of the others in a fractal logic (see attached Excel file as an example : you can make the scale vary by modifying the yellow underlined numbers).

Underlying trends are revealed

But let’s suppose also that you don’t have the mathematic formulae allowing the calculation of this curve. Then the question is : what is the long-term trend that can be predicted ? If I identify a global trend (« Eureka ! We are sitting on a global nearly cosine curve ! » i.e. the dark purple curve on the above diagram), isn’t there a more global trend that will, on a longer-term predict future results opposite to the results predicted by the more local trend (« Maybe the global cosine curve I identifed is just a minor variation of a longer-term larger cosine curve… ») ? Most often, I think there must such more global trends that escape our ability to modelize reality. Therefore, it reminds me that we should always be humble in our struggle with reality trying to make sense out of it. « God’s Ways Are Higher Than Our Way » It has something to do with modelling epistemology too : a given model or theory should never claim to be an absolute truth. A model is just a way to rationally handle a given set of problems. But may your set of problems be extended, then you may have to deeply and humbly revise your model.

Enterprise architects are too much object-oriented

My employer is considering a global model of an « enterprise architecture » consisting of layers building from legacy applications (at bottom of the model) upper to channel management (portals on top of other layers) with an enterprise-wide « business services integration layer » in the midlle (meaning some kind of E.A.I. solution or Enterprise Service Bus as the current buzzword says). This is a model typically invented by object-oriented architects. The kind of J2EE guys you know. It is said to be an « industry best practice » (ranting : which means we paid a consulting firm a lot of money and you can not criticize it since its credibility is proportional to the price we paid our consultants). What to think of such a model ?

I feel like such a model is nice but rather useless. What does it mean for the enteprise ? It may mean that you wish portals to be the unique location of user interfaces which I don’t think is necessary a good idea. And it certainly means that you want to build an enterprise-wide layer of business services which looks as a not-bad idea. Well, this model is certainly a nice pseudo-justification for financing an E.A.I. project involving the consultancy we hired for drawing this « best practice model ».

But my main point is that this model does not address the real issues of enterprise technical architecture. I think that these issues reside more in both information architecture (agreeing on common vocabularies, taxonomies, ontologies, …) and the technical design of web services (REST vs. RPC) and other issues raised by the W3C Technical Architecture Group. I think that addressing these issues is something that provides a lot more sustainability to the information system than wanting to considering the whole information system as a big object model.

This model tries to group set of IT software components according to their role : presentation, composition, aggregation, integration, etc. And it says that each role should not be tightly coupled with others (which is right). But this model is also not practical : the legacy information system is so far from this model and our organization is so much decentralized than this global model that I feel like mapping reality to this ideal model is impossible. It would cost so much (both in investment and in recurring costs) that I don’t see the relevancy of such a model. It seems to me that the enteprise architects should rather work on interoperability between IT components with general design rules focusing on sustainability rather than trying to plan and build a cathedral on top of a bazaar.

I really feel like object-oriented architects typically live in cathedrals. Object-oriented designers rather live inside chapels which fit better in a bazaar context. The problem is that today, most corporations believe that « enterprise architects » means « cathedral-oriented designers ». Do you know any Fortune corp. that asks technical architects to address the sustainability of their internal bazaar ? Do you know any CIO who publicly admits that his job is to manage a bazaar and asks architects to help him in his job without pretending changing it into a cathedral planning job ?

Items for a wishlist

What would be the programs I wish would be developped for me if ever I had a magic wand ?

  • A semantic cache-based aggregator (see that) which would act as a sort of P2P metadata sharing system based on REST-like web services (instead of an ad hoc P2P protocol)
  • A semantic Bloki
  • A contact management product for Zope
  • A e-machine that would allow users to quote priorities so that it sorts them democratically, the votes would be published on the weblogs of each user as a semantic feed (some specific RDF file), and the semantic cache-based aggregator would retrieve them, merge them and publish the sorted list of priorities for a given community or group ; more than priorities, this would ease the building of distributed reputation management systems
  • A full web rewriting of my concept visualization hack

Proprietary vs. Open Source, what’s the main difference ?

Is open source software more secure ? Maybe not. Is it less expensive ? Maybe not. Is it more robust ? Maybe not. Is it less industrial-grade ? Certainly not. So what must be the main difference between open source software opposed proprietary software ? Maybe it is just that open source software is more resilient.
When proprietary, a product that is known to be superior to its competitors in terms of features both for the end-user and the IT people may eventually fail to get into mainstream. Such products as MacOS, BeOS, NeXTstep, Smalltalk are said to fall into this category (these examples must not be that relevent, please correct me). They eventually failed to get into mainstream because they are deeply dependent on the success of their author or vendor. It seems to me that open source software, on the contrary, is somewhat independent from its author success. The open source organizational model guarantees such as independence and provides OSS with high resilience.
What do you think ?