Sunday, September 9, 2007

Patterns and an Intelligent Web

In contemplating the usage of patterns for sustainable development and planning as tools to be accessed collaboratively through the web, I began to contemplate the usage of patterns with their structure of title, problem, context and so on as a way to enable intelligent computing.

There has been so much talk about the semantic web as a step in this direction and from the very little I understand I see RDF, or resource description framework as being an idea that could enable this vision. However, patterns themselves possess an inherent structure that could lend them to being extremely useful to furthering this vision.

For instance, the notion of defining a generic problem within a specific pattern provides an interesting set of options. These problem descriptions possess key words that could be searched. Also, the problems could be broken up to possess their own URI along with a subject and predicate that could also make use of the RDF technology.

Why is this important? Well, in thinking of using patterns to support through the web planning and design, it is conceivable to think that many different patterns that span across domains of knowledge could be queried to support a more holistic design solution.

The Liberating Voices! project has so many great "nuggets of knowledge" yet there are elements that are missing with regards to the lower-level patterns. Most of what is in the current project are fairly high-level. This is not to say that they are so high-level that their usefulness is abstracted away from the casual observer, but my point is there is a lot of information left out. The other issue with the project is that the lower-level patterns that address more specific elements for designing communicative solutions to entrenched problems don’t pertain to ever

Now on the other hand, there are many other projects taking place that could be useful to help fill in the gaps. So, the question is how can we harness the possibilities offered through these different projects. Perhaps we can begin thinking of these projects as being meta-patterns themselves representing the highest level in our design. But again, how do we make these connections through the web where these various projects are not all structured the same way, nor connected together?

Currently, Liberating Voices! has this way of getting at these patterns through an xml dump. In this way we can query the patterns in the database based upon a set of parameters and retrieve patterns relevant to the parameters we provide. Now, this provides an important level of flexibility for those interested in using the Liberating Voices! patterns, but what if someone part of planning committee has need of a pattern that isn’t there?

It is possible that the planning group is clever enough to construct a solution, but it is possible that another solution has been provided by another pattern language project. Also, the pattern may provide a solution, but similar to the Liberating Voices! project, this pattern may also highlight some potential pitfalls and situations that could make the solution problematic. As a result, the planning group could miss out on this warning as well as the opportunity to identify other patterns that might be critical to mitigating these potential shortcomings.

I think it would be incredible to have these various groups get together to discuss greater levels of collaboration. I understand there are possibly conflicting interests, but if people could begin supporting open structures it is possible that the adoption of patterns as heuristic tools for design, planning and so forth could not just increase in popularity, but be more effective in fulfilling the basic premise of holism.

This way we could be in effect querying all of these different pattern repositories in order to construct our more context specific pattern languages. This is also important because if these repositories are distributed and that way the knowledge represented in these differing repositories can be managed by those already heavily involved with these specific domains.

This brings us to the idea of pattern adaptation based upon further real-world experience. So, how might actual users be able to help refine and illuminate the possibilities and pitfalls of various patterns? How might users take their experiences and help strengthen current patterns? Likewise, how might these cases help inform future pattern implementations?

But these are questions for the next post.

No comments: