ifacethoughts

Homonyms, Nomenclature And Aspects

Martin Fowler illustrates the effect of the natural language homonyms in modeling and design. A book can either mean the literary work or its physical body. What do we mean by book is usually communicated by the context of the conversation. One realisation I have had in my software development experience that it is important to capture this context, and at the same time it is one of the most difficult things to do. Search engines have used clustering to solve a similar problem.

Martin Fowler stresses that it is important to avoid the ambiguity of caused by homonyms - words with multiple meanings. If the words appear in the intended context then their implied meanings can be understood. However, context is usually conveyed through non-information means, like tone, expressions, prior knowledge, purpose or the knowledge of participants. For example, ATM would mean different things whether the listener is from a banking industry or telecommunications industry. These things are difficult to model in software systems, which is why we need to take steps to make the meaning more explicit, which Martin uses to specify PhysicalCopy and LiteraryWork when modeling a book. When there is a relation between them, it might even seem needless to separate them in the beginning. As a post-event wisdom this might seem very obvious, however it is not very easy to realize this at first.

From a different perspective, PhysicalCopy and LiteraryWork can be considered as two aspects of the book. Can an approach of considering aspects of each and every entity that we consider help us avoid the ambiguity? I think so. Also, a lot of times I have also found a relation between aspect and the role that an entity plays. This is important not only to separate but to realize whether all the aspects are part of the scope. For example, while modeling a binding business, the PhysicalCopy might be at the heart of the scope and the LiteraryWork at the boundary.

You might wonder, if at the end we do not end up using both, why not still continue with the word book. Because the implied context is still limited to the ones in the domain. It is important to be very clear in communicating what we mean by the word book. Secondly, it is quite possible that in the future the scope expands to include LiteraryWork. It is a fact of software development that the most natural things in our life are the most difficult to automate.

Say your thought!

Who are you?

If you want to use HTML you can use these tags: <a>, <em>, <strong>, <abbr>, <code>, <blockquote>. Closing the tags will be appreciated as this site uses valid XHTML.

freshthoughts

contactme

Abhijit Nadgouda
iface Consulting
India
+91 9819820312
Y!: anadgouda
GTalk: anadgouda@gmail.com
MSN: anadgouda@hotmail.com
Skype: anadgouda
My bookmarks

currentproject

Complete Wellbeing

badgesand...

This is the weblog of Abhijit Nadgouda where he writes down his thoughts on software development and related topics. You are invited to subscribe to the feed to stay updated or check out more subscription options. Or you can choose to browse by one of the topics.

Twitter - #mumbai - The city has started working today. The fears are still there, but the spirit will help in fighting it.