Archive for the ‘Design Patterns’ Category

Clojure Design Patterns

Friday, December 18th, 2015

Clojure Design Patterns by Mykhailo Kozik (Misha).

From the webpage:

Quick overview of the classic Design Patterns in Clojure.

Disclaimer: Most patterns are easy to implement because we use dynamic typing, functional programming and, of course, Clojure. Some of them look wrong and ugly. It’s okay. All characters are fake, coincidences are accidental.

In many places this is the last weekend before Christmas, which means both men and women will have lots of down time waiting on others in shopping malls.

That is the one time when I could see a good-sized mobile device being useful, assuming the mall had good Wifi.

In case yours does and you have earplugs for the background music/noise, you may enjoy pulling this up to read.

I first saw this in a tweet by Atabey Kaygun.

At A Glance – Design Pattern

Friday, November 7th, 2014

Spotted: clever and useful design patterns by Ben Terrett.

From the post:

I was looking at the Ikea website at the weekend and noticed this smart design pattern.

product ad

Many websites tell you whether an item is in stock and many tell you whether a product is available in store. But this tells you how many are in stock today and how many will be in stock tomorrow and the two days after. It’s clever and useful. (Should you wish to check the current availability of Malm drawers in Croydon Ikea you can here.)

Ben goes on to point out one aspect of this design pattern is that it only requires a glance to understand.

I assume you can think of some topic map presentations with graphics that required more than a glance to understand. 😉

Comprehension “at a glance” isn’t always possible to realize but when it is never realized, take that as a warning sign. Particularly when it is customers who are having the difficulty.

Ben’s post has other examples and pointers on the issue of being “glanceable.”

Design Patterns in Dynamic Programming

Tuesday, November 5th, 2013

Design Patterns in Dynamic Programming by Peter Norvig.

From the slides (dated May 5, 1996):

What Are Design Patterns?

  • Descriptions of what experienced designers know (that isn’t written down in the Language Manual)
  • Hints/reminders for choosing classes and methods
  • Higher-order abstractions for program organization
  • To discuss, weigh and record design tradeoffs
  • To avoid limitations of implementation language

(Design Strategies, on the other hand, are what guide you to certain patterns, and certain implementations. They are more like proverbs and like templates.)

Seventy-six slides that are packed with prose, each and every one.

Great for reading separate from the presentation.

Occurs to me that topic maps should be mature enough for a collection of patterns.

Patterns for modeling relationships. Patterns for modeling subject identity.

What patterns would you suggest?

Topic Map Patterns/Use Cases

Tuesday, April 2nd, 2013

The sources for topic map patterns I mentioned yesterday use a variety of modeling languages:

Data Model Patterns: Conventions of Thought by David C. Hay. (Uses CASE*Method™ (Baker’s Notation))

Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans. (Uses UML (Unified Modeling Language))

Developing High Quality Data Models by Matthew West. (Uses EXPRESS (EXPRESS-G is for information models))

The TMDM and Kal’s Design Patterns both use UML notation.

Although constraints will be expressed in TMCL, visually it looks to me like UML should be the notation of choice.

Will require transposition from non-UML notation but seems worthwhile to have a uniform notation.

Any strong reasons to use another notation?

Design Pattern Sources?

Monday, April 1st, 2013

To continue with the need for topic map design pattern thread, what sources would you suggest for design patterns?

Thinking that it would be more efficient to start from commonly known patterns and then when necessary, to branch out into new or unique ones.

Not to mention that starting with familiar patterns, as opposed to esoteric ones, will provide some comfort level for users.

Sources that I have found useful include:

Data Model Patterns: Conventions of Thought by David C. Hay.

Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans.

Developing High Quality Data Models by Matthew West. (Think Shell Oil. Serious enterprise context.)

Do you have any favorites you would suggest?

After a day or two of favorites, the next logical step would be to choose a design pattern and with an eye on Kal’s Design Pattern Examples , attempt to fashion a design template.

Just one, not bother to specify what comes next.

Working one bite at a time will make the task seem manageable.


Topic Map Design Patterns For Information Architecture

Monday, April 1st, 2013

Topic Map Design Patterns For Information Architecture by Kal Ahmed.


Software design patterns give programmers a high level language for discussing the design of software applications. For topic maps to achieve widespread adoption and improved interoperability, a set of topic map design patterns are needed to codify existing practices and make them available to a wider audience. Combining structured descriptions of design patterns with Published Subject Identifiers would enable not only the reuse of design approaches but also encourage the use of common sets of PSIs. This paper presents the arguments for developing and publishing topic map design patterns and a proposed notation for diagramming design patterns based on UML. Finally, by way of examples, the paper presents some design patterns for representation of traditional classification schemes such as thesauri, hierarchical and faceted classification.

Kal used UML to model the design patterns and their constraints. (TMCL, the Topic Map Constraint Language, had yet to be written. (TMCL)

For visual modeling purposes, are there any constraints in TMCL that cannot be modeled in UML?

I ask because I have not compared TMCL to UML.

Using UML to express the generic constraints in TMCL would be a first step towards answering the need for topic maps design patterns.

Topic Map Design Patterns

Monday, April 1st, 2013

A recent comment on topic map design patterns reads in part:

The second problem, and the one I’m working through now, is that information modeling with topic maps is a new paradigm for me (and most people I’m sure) and the information on topic map models is widely dispersed. Techquila had some design patterns that were very useful and later those were put put in a paper by A. Kal but, in general, it is a lot more difficult to figure out the information model with topic maps than it is with SQL or NoSQL or RDF because those other technologies have a lot more open discussions of designs to cover specific use cases. If those discussions existed for topic maps, it would make it easier for non-experts like me to connect the high-level this-is-how-topic-maps-work type information (that is plentiful) with the this-is-the-problem-and-this-is-the-model-that-solves-it type information (that is hard to find for topic maps).

Specifically, the problem I’m trying to solve and many other real world problems need a semi-structured information model, not just an amorphous blob of topics and associations. There are multiple dimensions of hierarchies and sequences that need to be modeled so that the end user can query the system with OLAP type queries where they drill up and down or pan forward and back through the information until they find what they need.

Do you know of any books of Topic Maps use cases and/or design patterns?

Unfortunately I had to say that I knew of no “Topic Maps use cases and/or design patterns” books.

There is XML topic maps : creating and using topic maps for the Web by Sam Hunting and Jack Park, but it isn’t what I would call a design pattern book.

While searching for the Hunting/Park book I did find: Topic Maps: Semantische Suche im Internet ( (German Edition) [Paperback] by Richard Widhalm (Author), Thomas Mück, with a 2012 publication date. Don’t be deceived. This is a reprint of the 2002 edition.

Any books that I have missed on topic maps modeling in particular?

The comment identifies a serious lack of resources on use cases and design patterns for topic maps.

My suggestion is that we all refresh our memories of Kal’s work on topic map design patterns (which I will cover in a separate post) and start to correct this deficiency.

What say you all?